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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)")

结果截图:

 

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

var testDic = [String: String]()

testDic.updateValue("AA", forKey: "11")
testDic.updateValue("BB", forKey: "22")
testDic.updateValue("CC", forKey: "33")
testDic.updateValue("DD", forKey: "44")

print("testDic:\\(testDic)")

var testDic2 = testDic

print("testDic2:\\(testDic2)")

testDic2.removeAll()

print("removeAll操作完成之后-----")

print("testDic2:\\(testDic2)")
print("testDic:\\(testDic)")

结果截图:

 

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

class Person {
    var name: String?
    var age: Int = 20
    
    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中数组和字典都是值类型的主要内容,如果未能解决你的问题,请参考以下文章

swift实现遍历嵌套字典并修改其中的值

swift实现遍历嵌套字典并修改其中的值

swift实现遍历嵌套字典并修改其中的值

Swift 值类型 和 引用类型的区别

Swift 值类型 和 引用类型的区别

Swift4.2~数组和字典(Array, Dictionary)基本类型转换