爲什麼以下不能在Swift中工作?Swift ===無
if someObject === nil {
}
您可以選擇使用==操作符如
if someObject == nil {
}
我在想,===更像確保實例做測試,其中完全相同(基本指針比較)和==更像是一個isEqual檢查。因此,我認爲===對於nil的測試會更合適,但我顯然是不正確的。
的文檔狀態:
===或「等同於」是指兩個常量或類型 的變量是指完全相同的類的實例。
==或「等於」是指兩個實例被認爲是「等於」或「等效」 中值,爲「相等」,如由類型的設計者定義。」
以下適用於我的'class Person {} let p = Person() let q:Person? = nil println(p === nil) println(q === nil)' –
該對象的值爲nil,不是指與nil完全相同的對象,這就是===的意思。 – milesper