Middle
Ako pridať vlastný inicializátor do štruktúry, pričom ponecháte predvolený inicializátor?
sobes.tech AI
Odpoveď od AI
Predvolene, štruktúry v Swift dostávajú automatický inicializátor člena, ak nedefinujete žiadne vlastné inicializátory. Ak pridáte akýkoľvek inicializátor, automatický inicializátor člena nie je poskytovaný.
Ak chcete zachovať automatický inicializátor člena pri pridávaní vlastných inicializátorov, môžete ich umiestniť do rozšírenia (extension). Inicializátory definované v rozšírení nerušia automatický inicializátor člena.
struct Person {
let name: String
let age: Int
}
extension Person {
// Váš inicializátor
init(name: String) {
self.name = name
self.age = 0 // Predvolená hodnota
}
}
// Použitie automatického inicializátora
let john = Person(name: "John", age: 30)
// Použitie vlastného inicializátora z rozšírenia
let jane = Person(name: "Jane")
print(john)
print(jane)