在 Swift 中使用相同的运算符(===)

Posted

技术标签:

【中文标题】在 Swift 中使用相同的运算符(===)【英文标题】:Use of identical operator(===) in Swift [duplicate] 【发布时间】:2015-07-23 10:59:21 【问题描述】:

我对快速编程很陌生。我被 Swift 中的 === 运算符卡住了。 Swift 中相同运算符 (===) 的基本用途是什么。

【问题讨论】:

【参考方案1】:

=== 是identity operator,它测试两个变量是否引用同一个实例。 相等运算符== 只测试两个对象是否相等。

您可以在 Playground 中测试以下代码:

let str1 = NSURL(string: "http://www.google.com")
let str2 = str1
let str3 = NSURL(string: "http://www.google.com")

str1 == str2  // true
str1 == str3  // true
str1 === str2 // true
str1 === str3 // false

【讨论】:

【参考方案2】:

它比较内存地址而不是比较内容 afaik。例如

var s1 = "bla"
var s2 = "bla"

if(s1 == s2)
  println("string values are the same") //will print
if(s1 === s2)
  print("but not the exact same string") //wont print

【讨论】:

以上是关于在 Swift 中使用相同的运算符(===)的主要内容,如果未能解决你的问题,请参考以下文章

作为参数的函数:swift3中的一元运算符

比较 Swift 中的字符串对象

Swift学习笔记——基础运算符

Swift 高级运算符与枚举

如何在 Swift 中使用具有隐式/强制展开的移位运算符

技术分享-swift防御编程