相关疑难解决方法(0)

if nil!= optional ...和let _ = optional之间有什么区别...

我需要测试一个返回一个可选项的表达式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 …相当于此.


更新以解决答案中的一些问题

  1. 我不明白之间的差别nil != varvar != nil,虽然我一般使用var != nil.在这种情况下,按下!= nil块之后获取混合的块的布尔比较和if的布尔比较.

  2. 使用通配符模式不应该是令人惊讶或不常见的.它们用于元组(x, _) = (10, 20),for-in循环 …

optional swift

19
推荐指数
3
解决办法
5002
查看次数

标签 统计

optional ×1

swift ×1