Эта статья является частью моей серии Учебник по программированию на Swift.
Основная цель объявления типа данных — избежать ненужных связанных ошибок в вашей программе, сделав ваш код чистым и организованным.
В Swift есть 6 основных типов данных: строка, символ, целое число, число с плавающей запятой, двойное число и логическое значение. Эти типы данных созданы для того, чтобы Swift мог хранить различные типы значений как в переменных, так и в константах. Затем есть перечисления, сокращение для перечислений, которые позволяют вам настраивать тип данных и определять значения внутри.
Чтобы оценить полезность настройки типа данных с перечислениями, давайте сравним использование оператора switch без перечислений и с перечислениями.
Ниже приведен оператор switch без использования перечислений.
E.g.
var fellowRace: String = "Aragorn" switch fellowRace { case "Aragorn": print("Human") case "Legolas": print("Elf") case "Gimli": print("Dwarf") case "Frodo": print("Hobbit") default: print("N/A") }
Вывод будет:
Human
Приведенный выше код, очевидно, работает нормально. Но будут ситуации, когда вы можете неправильно написать «Арагорн» на «Арагон». Если вы пишете сложную программу, опечатка в вашем коде — это нехорошо в реальной ситуации.
Ниже приведен оператор switch, основанный на перечислениях.
E.g.
enum fellowRace: String { case Aragorn, Legolas, Gimli, Frodo } var identifyRace: fellowRace = .Aragorn switch identifyRace { case .Aragorn: print("Human") case .Legolas: print("Elf") case .Gimli: print("Dwarf") case .Frodo: print("Hobbit") }
Мы используем слово enum, за которым следует его родительский тип данных, чтобы объявить перечисление. Используя перечисление, Swift будет принимать только значения настройки внутри. Такая практика может сделать код более организованным и менее подверженным ошибкам, связанным с типами данных.
Хотя я не одобряю эту практику, перечисления также могут быть объявлены без родительского типа данных, подобного этому.
E.g.
enum fellowRace { case Aragorn, Legolas, Gimli, Frodo }
Синтаксис также может быть отформатирован таким образом.
E.g.
enum fellowRace { case Aragorn case Legolas case Gimli case Frodo }
Необработанные значения также можно поместить в перечисление для более глубокой настройки.
E.g.
enum fellowRace: String { case Aragorn = "Human" case Legolas = "Elf" case Gimli = "Dwarf" case Frodo = "Hobbit" } var identifyRace: fellowRace = .Aragorn print(identifyRace.rawValue)
В нашем следующем уроке мы узнаем, как оборачивать более сложные типы данных с помощью структур.
Да пребудет с вами код,
-Дуга