我正在尝试做一些逻辑上看起来像这样的事情:
if text == "" || let i = Int(text) where i < 2 {
// do something; don't care about the value of i
}
当然这不是有效条件——如果 text == ""
是成立的部分,i
的值会是多少?但是,因为我只对 where
子句中的 i
的值感兴趣,所以我希望有一种很好的方法可以达到相同的效果,即执行相同的如果任一条件成立则关闭。我目前的解决方案是提取闭包并从两个单独的 if
block 中调用它,但这看起来很麻烦。
请您参考如下方法:
与您的代码示例等效的是:
if text == "" || Int(text) ?? 2 < 2 {
print("valid")
// do your previous "something
} else {
print("invalid")
}
产生
"" -> valid
"1" -> valid
"2" -> invalid
"abc" -> invalid