Swift中条件语句(if else)里下划线“_”的作用解析
Swift条件语句中下划线
_的作用解释 在你给出的代码里,下划线_出现在可选绑定(Optional Binding)场景中,作用是忽略绑定的变量值,只关心可选值是否不为nil。
具体代码分析
var guessWasMade: Bool { if let _ = game.guesses[currentQuestion] { return true } else { return false } }
结合教程说明,game.guesses是存储用户答案的数组,其中currentQuestion对应的位置是可选类型(nil表示未作答)。这段代码里的if let _ = ...逻辑很明确:
- 只要
game.guesses[currentQuestion]不为nil,可选绑定就会成功——我们不需要取出这个答案值来使用,直接返回true表示用户已作答; - 如果绑定失败(值为nil),则返回
false表示未作答。
和其他场景下划线用法的对比
你已经了解的两种下划线用法:
- 函数参数中的下划线:忽略参数标签,调用函数时不需要写对应的参数名;
- for循环中的下划线:忽略迭代的元素值,只执行循环逻辑(比如
for _ in 0..<3只循环3次,不用每次的数字);
而这里的用法本质是忽略可选绑定生成的变量——因为我们不需要使用这个变量的具体值,只是利用可选绑定的特性来判断值是否存在。
简化写法
这段代码可以简化成更简洁的形式,效果完全一致:
var guessWasMade: Bool { return game.guesses[currentQuestion] != nil }
内容的提问来源于stack exchange,提问作者Bogdan
相关产品推荐
相关产品推荐

