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()

測試截圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM