1. In Swift, Array, String, and Dictionary are all value types
Value and Reference Types参考
Swift中数组、字典、字符串都为值传递浅拷贝,与OC的NSArray, NSDictionary, NSString不同,不能设置为引用,可方便多线程传递。
注意当Swift中数组自定义set方法时,当用self.array更改内部数据也会触发set方法,相当于更改值,与OC中不同。
//自定义set方法
private var _list : [Any] = []
var list : [Any]{
get{
return _list
}
set{
_list = newValue
//...
}
}
func f(){
_list.remove(at: 0) //不会触发自定义set方法
self.list.remove(at: 0) //会触发自定义set方法
}
网友评论