前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >16.Swift学习之结构体

16.Swift学习之结构体

作者头像
YungFan
发布2018-11-07 11:23:27
3040
发布2018-11-07 11:23:27
举报
文章被收录于专栏:学海无涯学海无涯
结构体的介绍
  • 概念介绍
    • 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合
    • 结构体(struct)指的是一种数据结构
    • 结构体是值类型
    • 结构体既可以定义属性又可以定义方法
定义语法
代码语言:javascript
复制
struct 结构体名称 {
    // 属性和方法
}
  • 举例
代码语言:javascript
复制
struct Resolution {
      var width = 0
      var height = 0 
  }
  • 解读
    • 定义了一个名叫 Resolution的新结构体,用来描述一个基于像素的显示器分辨率
    • 这个结构体拥有两个存储属性名叫 width和 height
结构体实例
  • 构造函数语法最简单的是在结构体名字后面写上(),这样就创建了一个新的结构体的实例,任何属性都被初始化为它们的默认值
代码语言:javascript
复制
let someResolution = Resolution()
访问属性
  • 可以用点语法来访问一个实例的属性。
代码语言:javascript
复制
print("The width of someResolution is \(someResolution.width)")
结构体类型的成员构造函数
  • 所有的结构体都有一个自动生成的成员构造函数,可以使用它来初始化成员属性
  • 可以通过属性名称传递到成员构造函数中
代码语言:javascript
复制
let vga = Resolution(width: 640, height: 480)
结构体是值类型
  • 值类型是一种当它被指定到常量或者变量,或者被传递给函数时会被拷贝的类型。Swift 中的结构体是值类型,那么它在代码传递中总是被拷贝
代码语言:javascript
复制
//创建一个结构体
let hd = Resolution(width: 1920, height: 1080)
//值类型拷贝
var cinema = hd
cinema.width = 2048
println("cinema is now \(cinema.width) pixels wide")
//虽然cinema改变了,但是hd的值并未改变
print("hd is still \(hd.width) pixels wide")
字符串,数组和字典的赋值与拷贝行为
  • Swift 的 String , Array 和 Dictionary类型是作为结构体来实现的,这意味着String , Array 和 Dictionary在它们被赋值到一个新的常量或者变量,或它们本身被传递到一个函数或方法中的时候,其实是传递了拷贝。
  • NSString, NSArray和 NSDictionary,它们是作为类来实现的,所以NSString , NSArray 和 NSDictionary实例总是作为一个引用而不是拷贝来赋值和传递。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.10.20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 结构体的介绍
  • 定义语法
  • 结构体实例
  • 访问属性
  • 结构体类型的成员构造函数
  • 结构体是值类型
  • 字符串,数组和字典的赋值与拷贝行为
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档