All it really means is that if statements now support pattern matching like switch statements already have. For example, the following is now a valid way of using if/else if/else statements to “switch” over the cases of an enum.
enum TestEnum {
case One
case Two
case Three
}
let state = TestEnum.Three
if case .One = state {
print("1")
} else if case .Two = state {
print("2")
} else {
print("3")
}
And the following is now an acceptable way of checking if someInteger
is within a given range.
let someInteger = 42
if case 0...100 = someInteger {
// ...
}
Here are a couple more examples using the optional pattern from The Swift Programming Language
let someOptional: Int? = 42
// Match using an enumeration case pattern
if case .Some(let x) = someOptional {
print(x)
}
// Match using an optional pattern
if case let x? = someOptional {
print(x)
}