Swift中的值类型和对象类型
Swift中归纳的基础类型
- 值类型
- 引用类型
概念定义
- 值类型:每个实例都有一份独立副本,当被赋值给给一个变量或者常量,或者传递给一个函数时,都会创建一个新的独立副本。
- 引用类型:所有实例共享一个数据副本,当被赋值给一个常量或变量时,一个引用类型被初始化后,会返回一个指向已存在的实例的引用。
常见的类型分类
- 值类型:Int、Double、String、Array、Dictionary、Set、Struct、Enum、Tuple(元组)
- 引用类型:Class、Closures(闭包)、Functions
引用类型和值类型在内存中的存储
- 值类型:存储在栈中(系统静态分配处理内存,访问速度快)
- 引用类型:存储在堆中(需要根据请求动态分配内存,手动或ARC自动回收,访问速度较慢)
什么时候用引用类型和值类型
- 值类型:复制建立独立数据、在多线程中需要独立访问处理时,比如日常使用的大部分数据model。
- 引用类型:需要保持数据的一致性的,共享大家都可以去改变的实例。
以上内容只是本人Swift学习记录的知识点整理,非权威发布,如有问题,请及时指正。