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