Sobes.tech
Middle

Чӣ гуна метавон инициализатори худро ба структура илова кард, бо нигоҳ доштани инициализатори пешфарзӣ?

sobes.tech AI

Ҷавоб аз AI

По подразбиране, структурите в Swift получават автоматичен инициализатор на член, ако не дефинирате свои собствени инициализатори. Ако добавите какъвто и да е инициализатор, автоматичният инициализатор на член не се предоставя.

За да запазите автоматичния инициализатор на член при добавяне на свои инициализатори, можете да ги поставите в разширение (extension). Инициализаторите, дефинирани в разширението, не отменят автоматичния инициализатор.

struct Person {
    let name: String
    let age: Int
}

extension Person {
    // Вашият инициализатор
    init(name: String) {
        self.name = name
        self.age = 0 // Стойност по подразбиране
    }
}

// Използване на автоматичния инициализатор
let john = Person(name: "John", age: 30)

// Използване на вашия инициализатор от разширението
let jane = Person(name: "Jane")

print(john)
print(jane)