Swift 中的类和结构

类和结构

类是引用类型。

使用 Identity Operators(===, !===) 来判断两个变量(或常量)是否引用同一个实例。
(注意, Identical toEqual to 的区别)

结构

结构都是值类型。

结构都有一个自动生成的 memberwise initializer ,用来初始化结构体中的成员属性。

引用类型:赋值、传递时,使用的是引用。
值类型:赋值、传递时,值会被拷贝。

Swift 中,所有的基本类型都是值类型,包括,整数、浮点数、布尔值、字符串、数组、字典。String, Array, Dictionary 背后是通过结构体来实现的。然而,Swift 只会在真正需要拷贝的时候,才进行实际的拷贝动作。

值类型/引用类型、常量/变量

值得一提的是,将一个引用类型赋值给常量(let constantName = ReferenceType(...)),依旧可以修改引用类型中的属性。

这本不是什么奇怪的事情,不可以修改 constantName ,不代表不可以修改其所引用的实例。然而,由于数组、字典这一类基本类型是值类型,如果将TA们赋值给常量,就不能修改里面的元素了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容