Типы инициализаторов в Swift

May 06 2023
В Swift инициализаторы — это специальные методы, которые вызываются при создании экземпляра класса, структуры или перечисления. Они используются для настройки начального состояния экземпляра и могут принимать параметры для настройки процесса инициализации.

В Swift инициализаторы — это специальные методы, которые вызываются при создании экземпляра класса, структуры или перечисления. Они используются для настройки начального состояния экземпляра и могут принимать параметры для настройки процесса инициализации.

В Swift есть два типа инициализаторов: назначенные инициализаторы и удобные инициализаторы. Давайте подробнее рассмотрим каждый из них и посмотрим, чем они отличаются.

Назначенные инициализаторы

Назначенные инициализаторы — это основной способ инициализации нового экземпляра класса, структуры или перечисления. Они отвечают за инициализацию всех свойств экземпляра и перед этим должны вызвать назначенный инициализатор суперкласса.

Вот пример назначенного инициализатора для простого Personкласса:

class Person { 
    let name: String 
    let age: Int

    init(name: String, age: Int) { 
        self.name =name self.age = age 
    } 
}

Удобные инициализаторы

Удобные инициализаторы — это вторичные инициализаторы, предоставляющие ярлык для инициализации экземпляра класса, структуры или перечисления. Они должны вызвать назначенный инициализатор того же класса, прежде чем делать что-либо еще. Короче говоря, мы используем его для удобства инициализации.

Вот пример удобного инициализатора для Personкласса:

class Person { 
    let name: String 
    let age: Int 
    init(name: String, age: Int) { 
        self.name =name 
        self.age = age 
    } 

    convenience init(name: String) { 
        self.init(name: name, age: 0) 
    } 
}

Заключение

Таким образом, назначенные инициализаторы являются основным способом инициализации нового экземпляра класса, структуры или перечисления и отвечают за инициализацию всех свойств экземпляра. Удобные инициализаторы обеспечивают ярлык для инициализации экземпляра с определенным набором параметров и должны вызывать назначенный инициализатор того же класса, прежде чем делать что-либо еще.

Понимая разницу между назначенными и удобными инициализаторами, вы можете писать более эффективный и действенный код и легче создавать экземпляры своих классов, структур и перечислений.

Пожалуйста, хлопайте и подписывайтесь, если вам понравился этот пост.