- 值类型赋值给var、let或者给函数传参,是直接将所有内容拷贝一份,类似于对文件进行copy、paste操作,产生了全新的文件副本。属于深拷贝(deep copy)
- 在Swift标准库中,为了提升性能,
String
、Array
、Dictionary
、Set
采取了Copy On Write的技术。比如仅当有“写”操作时,才会真正执行拷贝操作 - 对于标准库值类型的赋值操作,Swift 能确保最佳性能,所有没必要为了保证最佳性能来避免赋值
- 建议:不需要修改的,尽量定义成
let
import UIKit
var s1 = "Jack"
var s2 = s1
s2.append("_rose")
print(s1)
print(s2)
输出结果为:
Jack
Jack_rose