Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
|
perechislenija [2023/09/18 12:45] oresh.dm создано |
perechislenija [2023/09/18 13:13] (текущий) oresh.dm |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| enum - это такой общий тип данных, | enum - это такой общий тип данных, | ||
| + | |||
| + | enum DayTime { | ||
| + | case night | ||
| + | case day | ||
| + | } | ||
| + | | ||
| + | // Ассоциированные значения // | ||
| + | |||
| + | enum Proffesion { | ||
| + | case programmer(String, | ||
| + | case sysadmin(String) | ||
| + | } | ||
| + | let myProffesion = Proffesion.programmer(" | ||
| + | | ||
| + | | ||
| + | // Чистые значения // | ||
| + | Могут быть только простого типа | ||
| + | | ||
| + | enum MyPetName: String { | ||
| + | case cat = " | ||
| + | case dog = " | ||
| + | } | ||
| + | | ||
| + | var myCat = MyPetName.cat | ||
| + | var myCatName = myCat.rawValue- // Доступ к чистому значению | ||
| + | | ||
| + | | ||
| + | // Протокол CAseIterable // | ||
| + | |||
| + | Позволяет исплользовать .allCases - по сути можно сделать массив из перечиления | ||
| + | |||
| + | // Свойства | ||
| + | |||
| + | enum Season { | ||
| + | case winter = 1, spring = 2, summer = 3, autumn = 4 | ||
| + | //case winter = 1, spring, summer, | ||
| + | | ||
| + | var label: String { | ||
| + | switch self { | ||
| + | case .winter: | ||
| + | return " | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | | ||
| + | // Инициализаторы для перечислений // | ||
| + | |||
| + | Можно создать инициал. для перечисл. | ||
| + | |||
| + | // | ||
| + | |||
| + | По аналогии с функциями | ||