Почти два года назад Робот Наташа опубликовала небольшой блог о сопоставлении с образцом в случае if. Хотя это было потрясающее вступление к if case, это было всего лишь вступление.

К концу этого блога вы сможете сопоставлять и фильтровать круги среди тех, кто не case пользуется услугами коллег.

Пример

VTS - это компания, занимающаяся технологиями в сфере коммерческой недвижимости, и поэтому мы будем использовать пример на тему строительства.

В приведенном выше примере у нас есть несколько типов зданий со связанными значениями. Перечисления со связанными значениями действительно могут очистить class тесно связанные объекты - и уберечь вас от ошибок в ваших конечных автоматах.

Выше приведен эквивалент примера Наташи - простой и по существу. Это позволяет нам сопоставлять перечисления на основе одного случая и создавать локализованную переменную поля, с которым мы хотим работать. Это позволяет нам включить один случай перечисления без использования подробного switch с default. У нас также может быть условное сопоставление на основе внутренних полей:

Поскольку мы можем использовать if case let, мы также можем использовать guard case let аналогичным образом. Но, что наиболее важно, мы можем объединить это с for циклом:

Таким образом, комбинируя его с циклом for, мы можем фильтровать и сопоставлять коллекцию. Это позволяет нам применять мощные методы фильтрации в удобной для чтения форме.

Дальнейшее чтение

Подбери меня, если сможешь, от AppVenture

Оператор сопоставления шаблонов, Swift Documentation

Быстрое сопоставление с образцом, Оле Бегеманн

Чтобы узнать больше, подпишитесь на меня на Medium или в Twitter @_hsalman