// 值类型和引用类型
// Swift 中 Int, Bool,struct, enum 是值类型,甚至 String, Array, Dictionary 都是值类型
// 值类型被赋值的时机是值类型的内容发生改变时,比如
var a = [1,2,3]
var b = a
b.append(5)
// 此时 a 和 b 的内存地址不再相同
// 值类型在复制时,会将存储在其中的值类型一并进行复制,而对其中的引用类型的话,则只复制一份引用。这是合理的行为
class MyObject{
var num = 0
}
var myObject = MyObject()
var a = [myObject]
var b = a
b.append(myObject)
myObject.num = 100
print(b[0].num, b[1].num)
// myObject 的改动同事影响了 b[0]和b[1]
//let bbb = Set()
// 值类型的容器 Dictionary Array Set 和引用类型的容器 NSArray,NSMutableArray,NSDictionray....
// 在需要处理大量数据并且频繁操作(增减)其中元素时,使用引用类型的好些。对于容器内条目小而容器本身数目多的情况下,应该使用 Swift 语言內建的 Array 和 Dictionary
网友评论