我们已经知道可以在单个 if/guard 语句中使用多个可选绑定,方法是用逗号分隔它们 https://stackoverflow.com/questions/35434939/swift-if-statement-multiple-conditions-separated-by-commas,但不与&&
e.g.
// Works as expected
if let a = someOpt, b = someOtherOpt {
}
// Crashes
if let a = someOpt && b = someOtherOpt {
}
在游乐场上玩,逗号风格的格式似乎也适用于布尔条件,尽管我在任何地方都找不到提到的。例如
if 1 == 1, 2 == 2 {
}
// Seems to be the same as
if 1 == 1 && 2 == 2 {
}
这是评估多个布尔条件的公认方法吗?,
与 相同&&
或者它们在技术上有什么不同?
其实结果并不一样。假设您有 2 个语句,它们之间有 if 和 && 。如果在第一个语句中您使用可选绑定创建了一个 let,则您将无法在第二个语句中看到它。相反,您会使用逗号。
逗号示例:
if let cell = tableView.cellForRow(at: IndexPath(row: n, section: 0)), cell.isSelected {
//Everything ok
}
&& 例子:
if let cell = tableView.cellForRow(at: IndexPath(row: n, section: 0)) && cell.isSelected {
//ERROR: Use of unresolved identifier 'cell'
}
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)