斯威夫特=== nil

托德·坎宁安

为什么以下内容在Swift中不起作用?

if someObject === nil {
}

您必须使用==运算符进行测试,例如

if someObject == nil {
}

我当时认为===更像是确保实例完全相同(基本上是比较指针)和==的实例更像是isEqual检查。因此,我认为===更适合针对nil进行测试,但是我显然是错误的。

该文档指出:

===或“等同于”表示类类型的两个常量或变量引用完全相同的类实例。

==或“等于”表示两个实例的值被认为是“相等”或“等效”,对于某些适当的含义,由类型设计者定义为“相等”。”

亚历克斯·韦恩

它的工作原理完全符合您的期望:

var s: String? = nil
s === nil // true

唯一需要注意的是,与之相比nil,您的变量必须是 nil这意味着它必须是可选的,用表示?

var s: String不允许有nil,所以会因此总是返回false===相比nil

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章