Swift手册的第61页的Swift文档提示使用where
可以使用常规条件来加入可选绑定。然而,当我这样做,我有一个警告,建议我在下面的代码段用逗号代替where
,如:在Swift中使用if赋予的位置
if let geocodingError = error as? NSError where geocodingError.code == 2
Swift手册的第61页的Swift文档提示使用where
可以使用常规条件来加入可选绑定。然而,当我这样做,我有一个警告,建议我在下面的代码段用逗号代替where
,如:在Swift中使用if赋予的位置
if let geocodingError = error as? NSError where geocodingError.code == 2
在斯威夫特3本语法发生了变化。
什么
if let x = y, a = b where a == x {
现在是
if let x = y, let a = b, a == x {
的理由是,if ... {
的每个子子句现在是一个独立的布尔测试。
有关此更改的详细信息,请参阅Xcode Release notes &的Swift Evolution proposal。
实施例与两个条件
if let x = y, let a = b, a == x && !x.isEmpty {
在xcode的9
if let str = textField.text as String!, !str.isEmpty
{
params[key] = str
TextFieldHelper.setup(textField: textField)
}
else
{
TextFieldHelper.error(textField: textField)
}
又一变化。文档中的where子句依然存在。无论如何,使用你建议的表单工作正常。 –
在Xcode 8 Beta 4发行说明中的其他地方描述了此更改吗?例如。进化/其他官方文档?我可能会注意到其他读者,我们仍然被提示使用'where'子句将变量绑定与条件分开,如果使用例如。 IBM Sandbox中的Swift 3.0-dev。 – dfri
更新到Swift 3的文档仍然有在线的地方。说这是令人困惑的是轻描淡写。现在看来他们正在为了它而改变事情,比如现在需要截止时间而不是时间的DispatchQueue。 –