Sobes.tech
Middle

Jak dodać własny inicjalizator do struktury, pozostawiając domyślny inicjalizator?

sobes.tech AI

Odpowiedź od AI

Domyślnie struktury w Swift otrzymują automatyczny inicjalizator członka, jeśli nie definiujesz własnych inicjalizatorów. Jeśli dodasz dowolny inicjalizator, automatyczny inicjalizator członka nie będzie dostępny.

Aby zachować automatyczny inicjalizator członka podczas dodawania własnych inicjalizatorów, możesz umieścić je w rozszerzeniu (extension). Inicjalizatory zdefiniowane w rozszerzeniu nie anulują automatycznego inicjalizatora członka.

struct Person {
    let name: String
    let age: Int
}

extension Person {
    // Twój inicjalizator
    init(name: String) {
        self.name = name
        self.age = 0 // Wartość domyślna
    }
}

// Użycie automatycznego inicjalizatora
let john = Person(name: "John", age: 30)

// Użycie własnego inicjalizatora z rozszerzenia
let jane = Person(name: "Jane")

print(john)
print(jane)