Middle
Jak přidat vlastní inicializátor do struktury a ponechat výchozí inicializátor?
sobes.tech AI
Odpověď od AI
Ve výchozím nastavení získávají struktury ve Swiftu automatický inicializátor člena, pokud nedefinujete žádné vlastní inicializátory. Pokud přidáte jakýkoli inicializátor, automatický inicializátor člena není poskytován.
Chcete-li zachovat automatický inicializátor člena při přidávání vlastních inicializátorů, můžete je umístit do rozšíření (extension). Inicializátory definované v rozšíření nezruší 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 // Výchozí hodnota
}
}
// Použití automatického inicializátoru
let john = Person(name: "John", age: 30)
// Použití vlastního inicializátoru z rozšíření
let jane = Person(name: "Jane")
print(john)
print(jane)