为什么以下内容在Swift中不起作用?
if someObject === nil {
}
Run Code Online (Sandbox Code Playgroud)
你必须使用==运算符进行测试,例如
if someObject == nil {
}
Run Code Online (Sandbox Code Playgroud)
我认为===更像是确保实例完全相同(基本上比较指针)和==更像是一个isEqual检查.因此我认为===更适合测试nil,但我显然是不正确的.
文件说明:
===或"与...相同"意味着类类型的两个常量或变量引用完全相同的类实例.
==或"等于"意味着两个实例的值被认为是"相等"或"等价",对于某些适当的"相等"含义,由类型的设计者定义."
Ale*_*yne 18
它的工作方式与预期完全一致
var s: String? = nil
s === nil // true
Run Code Online (Sandbox Code Playgroud)
唯一需要注意的是,要比较nil
,您的变量必须能够 nil
.这意味着它必须是可选的,用a表示?
.
var s: String
不允许有nil
,所以会因此总是返回false
时===
相比nil
.
归档时间: |
|
查看次数: |
9155 次 |
最近记录: |