Usage of where in if let assignment in Swift

2020-05-15 08:08发布

The Swift documentation at page 61 of the Swift manual hints to the possibility of using where to join an optional binding with a regular condition. Yet when I do it I have a warning suggesting me to substitute the where with a comma like in the following piece of code:

if let geocodingError = error as? NSError where geocodingError.code == 2

3条回答
Rolldiameter
2楼-- · 2020-05-15 08:27

In Swift 3 this syntax has changed.

What was

if let x = y, a = b where a == x {

Is now

if let x = y, let a = b, a == x {

The justification is that each sub-clause of the if ... { is now an independent boolean test.

See the Xcode Release notes & the Swift Evolution proposal for more info about this change.

查看更多
▲ chillily
3楼-- · 2020-05-15 08:28

Example with two conditions

if let x = y, let a = b, a == x && !x.isEmpty {
查看更多
Fickle 薄情
4楼-- · 2020-05-15 08:36

In xcode 9

if let str = textField.text as String!, !str.isEmpty
{
   params[key] = str
   TextFieldHelper.setup(textField: textField)
}
else
{ 
   TextFieldHelper.error(textField: textField)
}
查看更多
登录 后发表回答