Swift中数组和字典都是值类型

在 Swift 中,所有的基本类型:整数(Integer)、浮点数(floating-point)、布尔值(Boolean)、字符串(string)、数组(array)和字典(dictionary),都是值类型,并且在底层都是以结构体的形式所实现。类是引用类型。

1.测试数组是否为值类型

var testArray = [String]()

testArray.append("AA")
testArray.append("BB")
testArray.append("CC") var testArray2 = testArray print("testArray:\(testArray)")
print("testArray2:\(testArray2)") testArray2.removeAll()
print("removeAll操作完成之后----") print("testArray:\(testArray)")
print("testArray2:\(testArray2)")

结果截图:

Swift中数组和字典都是值类型

2.测试字典是否为值类型

var testDic = [String: String]()

testDic.updateValue("AA", forKey: "")
testDic.updateValue("BB", forKey: "")
testDic.updateValue("CC", forKey: "")
testDic.updateValue("DD", forKey: "") print("testDic:\(testDic)") var testDic2 = testDic print("testDic2:\(testDic2)") testDic2.removeAll() print("removeAll操作完成之后-----") print("testDic2:\(testDic2)")
print("testDic:\(testDic)")

结果截图:

Swift中数组和字典都是值类型

3.测试类是否为引用类型

class Person {
var name: String?
var age: Int = func sayHello() {
print("Hello, My name is \(name), My age is \(age)")
} } var p1 = Person()
var p2 = p1 print("p1:\(p1)")
print("p2:\(p2)") //sayHello
print("sayHello:")
p1.sayHello()
p2.sayHello() //修改p1的名字
print("修改p1的name:")
p1.name = "Zhang San" p1.sayHello()
p2.sayHello()

测试截图:

Swift中数组和字典都是值类型

上一篇:keras 中如何自定义损失函数


下一篇:C++入门经典-例5.20-右值引用传递参数