在 Swift 中用逗号分隔多个 if 条件

2023-12-20

我们已经知道可以在单个 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(使用前将#替换为@)

在 Swift 中用逗号分隔多个 if 条件 的相关文章

随机推荐