#25 designated, convenience, failable и required инициализаторы в Swift. Swift for beginners

Вы можете поддержать меня, если подпишитесь на boosty - boosty.to/justasid
Это будет большое видео в котором я достаточно подробно буду рассказывать про Инициализацию в языке Swift. Расскажу и покажу как инициализируются структуры и классы, в чем отличие. Как, вообще работает инициализация и ее особенности. Рассмотрим такие понятия как designated initializer (назначенный инициализатор), convenience initializer(вспомогательный инициализатор), failable initializer(проваливающийся инициализатор) и required initializer(требуемый инициализатор). И даже поговорим про перегрузку инициализаторов.
Приятного просмотра!

Пікірлер: 5

  • @user-ys4lm8dx6y
    @user-ys4lm8dx6y Жыл бұрын

    Полезно, спасибо за подробный урок

  • @user-rd8ub1wc3h
    @user-rd8ub1wc3h3 жыл бұрын

    Спасибо за урок!

  • @user-mt1mz9og6t
    @user-mt1mz9og6t2 жыл бұрын

    супер ! спасибочки!!

  • @ilyanesterenko2796
    @ilyanesterenko27963 жыл бұрын

    спасибо!

  • @chitzilla
    @chitzilla2 жыл бұрын

    При инициализации подкласса обязательно нужно проинициализировать свойства родительского класса командой super.init. Но что, если я не хочу этого делать (то есть задавать дефолтные значения), а хочу использовать только почленные инициализаторы экземпляров? Пример: class Animal { var name: String var legs: Int var tail: Bool var wings: Bool init (name: String, legs: Int, tail: Bool, wings: Bool) { self.name = name self.legs = legs self.tail = tail self.wings = wings } } class Cat: Animal { var color: String init (color: String) { self.color = color } // ERROR: 'super.init' isn't called on all paths before returning from initializer } Если не указывать super.init, то компилятор выдает соответствующую ошибку. Если указывать, то никак не выходит обойтись без задания конкретных значений.