Question: Looking at a Swift [example](https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson8.html#//apple_ref/doc/uid/TP40015214-CH16-SW1):

```
if let sourceViewController = sender.sourceViewController as? MealViewController, meal = sourceViewController.meal {
    ...
}

```

The doc states:

> 
> ... the code assigns that view controller to the local
>  constant sourceViewController, and checks to see if the meal property
>  on sourceViewController is nil.
> 
> 
> 

Question: Does Swift let you have multiple conditions in your if statement when separated by commas (as in this example with the comma after `MealViewController`)? 

Haven't seen this in the docs.

Answer: 
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 optional bindings 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](https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html#ID333) 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"
> 
> ```
> 
>