Sobes.tech
Middle

Kā pievienot savu inicializatoru struktūrai, atstājot noklusējuma inicializatoru?

sobes.tech AI

Atbilde no AI

Noklusējuma iestatījumos Swift struktūrām ir automātisks locekļa inicializators, ja nav definēti savi inicializatori. Ja pievienojat kādu inicializatoru, automātiskais locekļa inicializators netiek nodrošināts.

Lai saglabātu automātisko locekļa inicializatoru, pievienojot savus inicializatorus, tos var ievietot paplašinājumā (extension). Inicializatori, kas definēti paplašinājumā, neatsauc automātisko locekļa inicializatoru.

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

extension Person {
    // Jūsu inicializators
    init(name: String) {
        self.name = name
        self.age = 0 // Noklusējuma vērtība
    }
}

// Automātiskā locekļa inicializatora izmantošana
let john = Person(name: "John", age: 30)

// Jūsu inicializatora izmantošana no paplašinājuma
let jane = Person(name: "Jane")

print(john)
print(jane)