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)