Swift中的引用类型和值类型

       值类型: 每个实例都会保留的有一份独有的数据拷贝,一般以结构体、枚举或者元组的形式出现。

       引用类型:每个实例共享同一份数据来源,一般以类的形式出现。

       用通俗的话来说就是,值类型就像是复印一份报告一样,复印了之后,修改原件上的内容,复印件的内容不会改变;而复制一个引用类型,则相当于我共享我的电脑给你使用,当你改变我电脑里面的数据时,我使用的时候数据就会变为你改变的。可能举例有些不生动、形象,但是希望看官能够明白我所说的意思。

值类型和引用类型的区别:

       值类型和引用类型最明显的区别在于被复制之后。当一个值类型被复制的时候,就相当于创造了一个完全独立的实例,这个实例有属于自己的独有的数据,不会因为其他实例的数据变化而有所改变。而引用类型的复制,在改变一个实例的时候,另一个实例也会随之改变。

什么时候该用值类型呢:

1.要用==运算符来比较实例的数据时;

2.希望某个实例的拷贝能保持独立的状态时;

3.数据会被多个线程所使用时;

什么时候该用引用类型呢:

1.要用==运算符来比较实例的身份时;

2.希望创建一个共享的可变对象时;

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

推荐阅读更多精彩内容