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

    测试截图:

  • 相关阅读:
    哈希表
    c++中的虚函数
    struct并不报错
    c风格的字符串
    动态数组
    常量指针和指针常量
    关于struct和typedef struct
    常量成员函数
    关于free的使用疑惑
    mutable用于修改const成员函数中的成员变量
  • 原文地址:https://www.cnblogs.com/wobuyayi/p/6396834.html
Copyright © 2020-2023  润新知