为什么数组使用' ==='运算符来比较元素?

时间:2014-06-04 20:03:10

标签: ios swift

来自documentation关于数组:

  

通过将它们与身份运算符(===和!==)进行比较,检查两个数组或子阵列是否共享相同的存储和元素

但是,要检查两个数组是否包含相同的元素,请不要使用比较运算符==(因为您要比较数组的值)而不是标识{{ 1}}(这会检查你是否指的是同一个数组)?

假设我正确理解了运算符,这种行为是由数组的实现引起的===吗?

1 个答案:

答案 0 :(得分:2)

关键词是"存储" - 这意味着他们是同一个"对象",这确实是身份。

需要进行此项检查,因为数组是通过引用而不是按值复制的,因此您可能会陷入改变另一个"另一个"数组如果你不小心 - 这就是指南的这一部分。