【发布时间】:2016-08-18 08:20:27
【问题描述】:
我知道你可以使用 if let 语法在一行中解开多个选项
if let x = optionalX, y = optionalY {
//do something
}
我想要的是在一行中展开多个相互依赖的选项。目前看起来是这样的
if let a = optionalA {
if let ab = a.optionalB {
if let abc = ab.optionalC {
//do something
}
}
}
IMO 这看起来真的很不干净,特别是如果您还想要 else 案例,因为您必须将它添加到每个案例中。我想要的看起来像这样,但它不起作用
if let a = optionalA, ab = a.optionalB {
//do something
}
更新
上面的代码确实有效!
我在其他地方出现了错误,这看起来像是语句中发生了错误。
【问题讨论】:
-
你可以这样做。如果您有一些错误 - 将其提供给我们;应该没有错误。
-
您忘记了测试代码中
optionalB : B?中的var。否则它会按预期编译和运行。 -
你最好使用IBM swift playground,它会显示这个错误。
-
iswift.org/playground?hWHhnR 我忘记了 var,不知何故,当我在 xCode 中使用更复杂的代码和在线尝试它时,我没有看到它。对不起愚蠢!