Подтвердить что ты не робот

Swift 2 - сопоставление образцов в "if"

Недавно я увидел лейбл WWDC 2015 от Apple. Я также просмотрел некоторую документацию, но не могу найти раздел "сопоставление образцов в if", как он был написан на одном из слайдов, которые они показали. (68 минут 00 секунд видео из События Apple)

Вы знаете, к чему это относится? Или синтаксис?

4b9b3361

Ответ 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)
}