集合类的拷贝操作
*/
@H_403_16@ @H_403_0@ var array: Array<Int> = [1,2,3] @H_403_0@ var array1 = array @H_403_16@ @H_403_16@ @H_403_0@ /**public struct Array<Element>
我们点击安住Command 点击String可以看到是 结构体类型,值类型
值类型的赋值操作是深拷贝,
*/
@H_403_16@ @H_403_0@ array1 += [4,5,6] @H_403_16@ @H_403_0@ print("array==\(array)") @H_403_0@ print("array1==\(array1)") @H_403_16@ @H_403_0@ /**array==[1,2,3]
array1==[1,3,4,5,6]
我们可以看到改变array1后,array并没有被改变啊。
所以上面是深拷贝。
*/
@H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@ @H_403_0@ var dict: Dictionary<Int,String> = [1 : "a",2 : "b"] @H_403_0@ var dict1 = dict @H_403_16@ @H_403_16@ @H_403_0@ /**public struct Dictionary<Key : Hashable,Value> : Collection
我们点击安住Command 点击Dictionary可以看到是 结构体类型,值类型
*/
@H_403_16@ @H_403_16@print("------------------------>")
@H_403_0@ dict1[3] = "c" @H_403_16@ @H_403_0@ print("dict1==\(dict1)") @H_403_0@ print("dict==\(dict)") @H_403_0@ /**dict1==[2: "b",3: "c",1: "a"]
dict==[2: "b",0)"> 我们可以看到改变dict1后,dict并没有被改变啊。
*/
@H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@ @H_403_16@print("------------------------>")
@H_403_16@@H_403_0@ var ocArray: NSMutableArray = NSMutableArray.init(array: [1,3]) @H_403_16@ @H_403_0@ /**
open class NSMutableArray : NSArray
我们点击安住Command 点击NSMutableArray可以看到是 class类型,引用类型
类,引用类型 的赋值操作是浅拷贝
*/
@H_403_16@@H_403_16@ @H_403_0@ var ocArray1 = ocArray @H_403_16@ @H_403_0@ ocArray1.add(7) @H_403_16@ @H_403_0@ print("ocArray1==\(ocArray1)") @H_403_0@ print("ocArray==\(ocArray)") @H_403_16@
@H_403_0@ /**
ocArray1==(
1,
2,0)"> 3,0)"> 7
)
ocArray==(
改变ocArray1后,ocArray也改变了,是浅拷贝。
*/