Видеокурсы по изучению языка программирования Swift. Подробнее

Синтаксис перечислений

Если вы нашли опечатку в тексте, выделите ее и нажмите CTRL + ENTER.

Перечисления начинаются с ключевого слова enum, после которого идет имя перечисления и полное его определение в фигурных скобках:

enum SomeEnumeration {
    //здесь будет объявление перечисления
}

Ниже пример с четырьмя сторонами света:

enum CompassPoint {
    case north
    case south
    case east
    case west
}

Значения, объявленные в перечислении (northsoutheast, и west), называются кейсами перечисления. Используйте ключевое слово case для включения нового кейса перечисления.

Заметка

В отличии от C и Objective-C в Swift кейсам перечисления не присваиваются целочисленные значения по умолчанию при их создании. В примере выше CompassPoint, значения членов northsoutheast и west неявно не равны 0, 1, 2, 3. Вместо этого различные члены перечисления по праву полностью самостоятельны, с явно объявленным типом CompassPoint.

Множественные значения члена перечисления могут записываться в одну строку, разделяясь между собой запятой:

enum Planet {
    case mercury, venus, earth, mars, jupiter, saturn, uranus, neptune
}

Каждое объявление перечисления объявляет и новый тип. Как и остальные типы в Swift, их имена (к примеру CompassPoint и Planet) должны начинаться с заглавной буквы. Имена перечислениям лучше давать особенные, а не те, которые вы можете использовать в нескольких местах, так чтобы они читались как само собой разумеющиеся:

var directionToHead = CompassPoint.west

Тип directionToHead выведен при инициализации одного из возможных значений CompassPoint. Если directionToHead объявлена как CompassPoint, то можем использовать различные значения CompassPoint через сокращенный точечный синтаксис:

directionToHead = .east

Тип directionToHead уже известен, так что вы можете не указывать тип, присваивая значения. Так делается для хорошо читаемого кода, когда работаете с явно указанными типами значений перечисления.

Swift: 
3.0