Middle
Kā pievienot savu inicializatoru struktūrai, atstājot noklusējuma inicializatoru?
sobes.tech AI
Atbilde no AI
Noklusējuma iestatījumos Swift struktūrām ir automātisks locekļa inicializators, ja nav definēti savi inicializatori. Ja pievienojat kādu inicializatoru, automātiskais locekļa inicializators netiek nodrošināts.
Lai saglabātu automātisko locekļa inicializatoru, pievienojot savus inicializatorus, tos var ievietot paplašinājumā (extension). Inicializatori, kas definēti paplašinājumā, neatsauc automātisko locekļa inicializatoru.
struct Person {
let name: String
let age: Int
}
extension Person {
// Jūsu inicializators
init(name: String) {
self.name = name
self.age = 0 // Noklusējuma vērtība
}
}
// Automātiskā locekļa inicializatora izmantošana
let john = Person(name: "John", age: 30)
// Jūsu inicializatora izmantošana no paplašinājuma
let jane = Person(name: "Jane")
print(john)
print(jane)