Sobes.tech
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)