Sobes.tech
Middle

Kaip pridėti savo inicializatorių į struktūrą, paliekant numatytąjį inicializatorių?

sobes.tech AI

Atsakymas iš AI

Pagal numatytuosius nustatymus, Swift struktūros gauna automatinį nario inicializatorių, jei nesate apibrėžę savo inicializatorių. Jei pridėsite bet kokį inicializatorių, automatinis nario inicializatorius nebus teikiamas.

Norint išlaikyti automatinį nario inicializatorių pridėjus savo inicializatorius, galite juos įdėti į extension (plėtinį). Inicializatoriai, apibrėžti extension, nepanaikina automatinio nario inicializatoriaus.

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

extension Person {
    // Jūsų inicializatorius
    init(name: String) {
        self.name = name
        self.age = 0 // Numatytoji reikšmė
    }
}

// Automatinio nario inicializatoriaus naudojimas
let john = Person(name: "John", age: 30)

// Savo inicializatoriaus naudojimas iš extension
let jane = Person(name: "Jane")

print(john)
print(jane)