Инициализатор — это специальный метод, выполняющий подготовительные действия при создании экземпляра объектного типа данных. Инициализатор срабатывает при создании экземпляра, а при его удалении вызывается деинициализатор.
Деинициализаторы же являются отличительной особенностью классов. Деинициализатор автоматически вызывается во время уничтожения экземпляра класса. Вы не можете вызвать деинициализатор самостоятельно. Один класс может иметь максимум один деинициализатор. С помощью деинициализатора вы можете, например, освободить используемые экземпляром ресурсы, вывести на консоль журнал или выполнить любые другие действия.
1) Создайте перечисление DayOfWeek
, членами которого будут являться дни недели. У каждого члена должно быть связанное целочисленное значение. указывающее на его порядковый номер
2) В составе перечисления создайте проваливающийся (failable
) инициализатор, который принимает на вход название дня недели на русском языке и возвращает соответсвующий член перечисления
В случае, если передано некорректное значение, необходимо вернуть nil
3) Создайте переменную с использованием данного инициализатора
//1-2 enum DayOfWeek: Int{ case monday=1, tuesday, wednesday, thursday, friday, saturday, sunday init?(_ val:String) { switch val { case "Понедельник": self = .monday case "Вторник": self = .tuesday case "Среда": self = .wednesday case "Четверг": self = .thursday case "Пятница": self = .friday case "Суббота": self = .saturday case "Воскресенье": self = .sunday default: return nil } } } //3 var monday = DayOfWeek("Понедельник") monday!.rawValue // 1