Напоминание
• struct (структура) – в Java отсутствует
• Value type - ключевое отличие от class, в остальном много схожестей
• Многие встроенные типы являются структурой (String, Int, Dictionary, Array и пр.)
• Поддерживает не все принципы ООП
• class (класс)
• Reference type
• Более сложные объекты
• Поддерживает все принципы ООП
• Дни недели, названия месяцев и пр. – все это могут быть enum
• В Java названия перечислений называют большими буквами (как константы), в Swift - маленькими
• Raw value может быть только элементарным типом (Int, Double, Float, Character, String)
Nested types
• Типы могут вкладываться друг в друга
• В отличие от Java – вложенные типы независимы друг от друга и можно создавать экземпляры внутренних
типов без создания внешнего объекта
• Зачем нужно:
• Разбить большой тип на несколько меньших
• Если встроенный тип используется только в этом внешнем типе
indirection
• Если внутри параметров associated values указан тип этого же enum (рекурсия)
• Применяется для построения древовидной структуры (файловая система, графы и пр.), где может быть любая
вложенность
Домашнее задание
• Прочитать
• https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Enumerations.h
tml
• https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/NestedTypes.ht
ml