swift语法

Swift 值类型和引用类型

2020-05-06  本文已影响0人  Rockerliang

值类型,即每个实例保持一份数据拷贝。

引用类型,即所有实例共享一份数据拷贝。

作为参数:

在 Swift 中,函数的参数默认为常量,即在函数体内只能访问参数,而不能修改参数值。具体来说:

Copy-on-Write

Swift针对标准库中的集合类型(Array、Dictionary、Set)进行优化。当变量指向的内存空间并没有发生改变,进行拷贝时,只会进行浅拷贝。只有当值发生改变时才会进行深拷贝。

工作方式是,每当数组被改变,它首先检查它对存储缓冲区 的引用是否是唯一的,或者说,检查数组本身是不是这块缓冲区的唯一拥有者。如果是,那么 缓冲区可以进行原地变更;也不会有复制被进行。不过,如果缓冲区有一个以上的持有者 (如本 例中),那么数组就需要先进行复制,然后对复制的值进行变化,而保持其他的持有者不受影响。

在 Swift 中,我们可以使用 isKnownUniquelyReferenced 函数来检查某个引 用只有一个持有者。

上一篇下一篇

猜你喜欢

热点阅读