我需要测试一个返回一个可选项的表达式nil.这看起来很简单,但这里是代码.
if nil != self?.checklists.itemPassingTest({ $0 === note.object }) {
…
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我的眼睛看起来很不愉快.
if let item = self?.checklists.itemPassingTest({ $0 === note.object }) {
…
}
Run Code Online (Sandbox Code Playgroud)
看起来好多了,但我实际上并不需要这个项目,我只需要知道是否有人退回.所以,我使用了以下内容.
if let _ = self?.checklists.itemPassingTest({ $0 === note.object }) {
…
}
Run Code Online (Sandbox Code Playgroud)
我错过了一些微妙的东西吗?我认为if nil != optional …并且if let _ = optional …相当于此.
更新以解决答案中的一些问题
我不明白之间的差别nil != var和var != nil,虽然我一般使用var != nil.在这种情况下,按下!= nil块之后获取混合的块的布尔比较和if的布尔比较.
使用通配符模式不应该是令人惊讶或不常见的.它们用于元组(x, _) = (10, 20),for-in循环 …