Swift值类型&引用类型

值类型

每个实例都有自己唯一的数据,不会因为其他实例的改变而改变。值类型的赋值都是深复制的。

值类型包括结构体、枚举、元组。

引用类型

引用对象的实例共享他们的数据。引用类型的赋值都是指向同一块内存地址。

引用类型包括类。

主要区别

当实例的值不会改变时,值类型和引用类型是一样的。

当实例的值可能发生改变时,需要注意。
可以通过copy对象来防止引用值的改变。

多线程时,引用类型会变得危险。

使用场景

值类型:判断数据相等、使用多线程

引用类型:判断对象相等、创建一个共享的对象

⚠️Array、String、Dictionary虽然是对象,但是做了隐式copy处理,每个实例都有自己的数据,是线程安全的。

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

推荐阅读更多精彩内容