15.3 Swift集合类的拷贝
/** 集合类的拷贝操作 */
var array: Array<Int> = [1,2,3] var array1 = array
/** public struct Array<Element> 我们点击安住Command 点击String可以看到是 结构体类型,值类型 值类型的赋值操作是深拷贝, */
array1 += [4,5,6]
print("array==(array)") print("array1==(array1)")
/** array==[1,2,3] array1==[1,3,4,5,6]
我们可以看到改变array1后,array并没有被改变啊。 所以上面是深拷贝。 */
var dict: Dictionary<Int,String> = [1 : "a",2 : "b"] var dict1 = dict
/** public struct Dictionary<Key : Hashable,Value> : Collection 我们点击安住Command 点击Dictionary可以看到是 结构体类型,值类型 */
print("------------------------>") dict1[3] = "c"
print("dict1==(dict1)") print("dict==(dict)") /** dict1==[2: "b",3: "c",1: "a"] dict==[2: "b",0)"> 我们可以看到改变dict1后,dict并没有被改变啊。 */
print("------------------------>") var ocArray: NSMutableArray = NSMutableArray.init(array: [1,3])
/** open class NSMutableArray : NSArray 我们点击安住Command 点击NSMutableArray可以看到是 class类型,引用类型 类,引用类型 的赋值操作是浅拷贝 */
var ocArray1 = ocArray
ocArray1.add(7)
print("ocArray1==(ocArray1)") print("ocArray==(ocArray)") /** ocArray1==( 1, 2,0)"> 3,0)"> 7 ) ocArray==( 改变ocArray1后,ocArray也改变了,是浅拷贝。 */ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |