值类型和引用类型

值类型的变量直接包含他们的数据,值类型都有他们自己的数据副本,因此对一个变量操作不可能影响另一个变量;值类型甚至可以直接用+号等操作符

引用类型的变量存储对他们的数据引用,因此变量称为对象,因此对一个变量操作可能影响另一个变量所引用的对象。

swift中除了类,基本上都是值类型。oc中则除了基本数据类型,都是引用类型 值类型没有引用计数,总是线程安全的,值类型在消息派发机制上总是走的直接派发。值类型分配在栈上,速度略快。传递值是直接copy一份。 引用类型存在引用计算,线程不安全,我们需要自己保证线程安全。引用类型分配在堆上,速度略慢。传递值的时候属于指针引用。

作者:思忆00000

%s 个评论

要回复文章请先登录注册