【发布时间】:2015-07-23 10:59:21
【问题描述】:
我对快速编程很陌生。我被 Swift 中的 === 运算符卡住了。 Swift 中相同运算符 (===) 的基本用途是什么。
【问题讨论】:
我对快速编程很陌生。我被 Swift 中的 === 运算符卡住了。 Swift 中相同运算符 (===) 的基本用途是什么。
【问题讨论】:
=== 是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
【讨论】:
它比较内存地址而不是比较内容 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
【讨论】: