美文网首页
值类型和引用类型

值类型和引用类型

作者: fordring2008 | 来源:发表于2017-02-04 10:21 被阅读11次

    // 值类型和引用类型

    // Swift 中 Int, Bool,struct, enum  是值类型,甚至  String, Array, Dictionary 都是值类型

    // 值类型被赋值的时机是值类型的内容发生改变时,比如

    var a = [1,2,3]

    var b = a

    b.append(5)

    // 此时 a 和 b 的内存地址不再相同

    // 值类型在复制时,会将存储在其中的值类型一并进行复制,而对其中的引用类型的话,则只复制一份引用。这是合理的行为

    class MyObject{

    var num = 0

    }

    var myObject = MyObject()

    var a = [myObject]

    var b = a

    b.append(myObject)

    myObject.num = 100

    print(b[0].num, b[1].num)

    // myObject 的改动同事影响了 b[0]和b[1]

    //let bbb = Set()

    // 值类型的容器 Dictionary Array Set 和引用类型的容器 NSArray,NSMutableArray,NSDictionray....

    // 在需要处理大量数据并且频繁操作(增减)其中元素时,使用引用类型的好些。对于容器内条目小而容器本身数目多的情况下,应该使用 Swift 语言內建的 Array 和 Dictionary

    相关文章

      网友评论

          本文标题:值类型和引用类型

          本文链接:https://www.haomeiwen.com/subject/jyyjittx.html