大佬教程收集整理的这篇文章主要介绍了数组 – 使用’import Foundation’的Swift不同的数组行为,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
var a = [1,2,3] var b = a if a === b { println("a === b") } if a == b { println("a == b") }
输出:
import Foundation var a = [1,3] var b = a if a === b { println("a === b") } if a == b { println("a == b") }
输出:
有谁知道幕后发生了什么?谢谢.
你可以通过改变你的var来让它看,然后看= =再次成为真.
测试不同的排列,看看会发生什么:
两者都是Mutable
var a = [1,3] var b = a if a === b { println("arrays are the same instance") } // false if a == b { println("arrays are equivalent") } // true
可变源,不可变复制
var a = [1,3] let b = a if a === b { println("arrays are the same instance") } // false if a == b { println("arrays are equivalent") } // true
不可变的源,可变复制
let a = [1,3] var b = a if a === b { println("arrays are the same instance") } // false if a == b { println("arrays are equivalent") } // true
两者都是不变的
let a = [1,3] let b = a if a === b { println("arrays are the same instance") } // true if a == b { println("arrays are equivalent") } // true
这实际上是制作防御性副本的正确行为,仅在必要时.
如果您的来源是可变的,您必须制作副本,否则可以在外部进行更改.如果你想要一个可变的副本,你需要复制当然.
没有制作副本的唯一时间是源和副本都是不可变的,因为那样会浪费.
以上是大佬教程为你收集整理的数组 – 使用’import Foundation’的Swift不同的数组行为全部内容,希望文章能够帮你解决数组 – 使用’import Foundation’的Swift不同的数组行为所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。