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)