Ответ 1
Все это действительно означает, что если операторы теперь поддерживают сопоставление шаблонов, как это уже делают операторы switch. Например, следующий пример теперь является допустимым способом использования команд if/else if/else для "переключения" по случаям перечисления.
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")
}
И теперь приемлемым способом проверки является someInteger
в пределах заданного диапазона.
let someInteger = 42
if case 0...100 = someInteger {
// ...
}
Вот еще несколько примеров, используя дополнительный шаблон из Язык Swift для программирования
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)
}