15.3 Swift集合类的拷贝

前端之家收集整理的这篇文章主要介绍了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也改变了,是浅拷贝。

*/

原文链接:https://www.f2er.com/swift/322359.html

猜你在找的Swift相关文章