zoukankan      html  css  js  c++  java
  • 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()

    测试截图:

  • 相关阅读:
    ajax语法结构
    数据传输编码模式的解析
    choice参数与MTV和MVC
    only和defer与select_related和prefetch_Related(面试重点)
    聚合查询、分组查询、 F与Q查询
    多表查询
    单表查询
    模板的继承和导入
    模板语法的传值和取值
    IOC依赖注入简单实例
  • 原文地址:https://www.cnblogs.com/wobuyayi/p/6396834.html
Copyright © 2011-2022 走看看