Swift if statement - multiple conditions separated by commas? Swift if statement - multiple conditions separated by commas? ios ios

Swift if statement - multiple conditions separated by commas?


Yes when you write

if let a = optA, let b = optB, let c = optC {}

Swift does execute the body of the IF only if all the assignments are properly completed.

More

Another feature of this technique: the assignments are done in order.

So only if a value is properly assigned to a, Swift tries to assign a value to b. And so on.

This allows you to use the previous defined variable/constant like this

if let a = optA, let b = a.optB {}

In this case (in second assignment) we are safely using a because we know that if that code is executed, then a has been populated with a valid value.


Yes. Swift: Documentation: Language Guide: The Basics: Optional Binding says:

You can include as many optional bindings and Boolean conditions in a single if statement as you need to, separated by commas. If any of the values in the optional bindings are nil or any Boolean condition evaluates to false, the whole if statement’s condition is considered to be false. The following if statements are equivalent:

if let firstNumber = Int("4"), let secondNumber = Int("42"), firstNumber < secondNumber && secondNumber < 100 {    print("\(firstNumber) < \(secondNumber) < 100")}   // Prints "4 < 42 < 100"if let firstNumber = Int("4") {    if let secondNumber = Int("42") {        if firstNumber < secondNumber && secondNumber < 100 {            print("\(firstNumber) < \(secondNumber) < 100")        }       }   }   // Prints "4 < 42 < 100"