我正在尝试做一些逻辑上看起来像这样的事情:

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


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!