Middle
Come si può aggiungere il proprio inizializzatore a una struttura, lasciando quello predefinito?
sobes.tech AI
Risposta dell'AI
Per impostazione predefinita, le strutture in Swift ricevono un inizializzatore automatico di membro se non ne definisci uno proprio. Se aggiungi qualsiasi inizializzatore, l'inizializzatore automatico di membro non viene fornito.
Per mantenere l'inizializzatore automatico di membro quando si aggiungono propri inizializzatori, puoi inserirli in un'estensione. Gli inizializzatori definiti in un'estensione non annullano l'inizializzatore automatico di membro.
struct Person {
let name: String
let age: Int
}
extension Person {
// Tuo inizializzatore
init(name: String) {
self.name = name
self.age = 0 // Valore di default
}
}
// Uso dell'inizializzatore automatico
let john = Person(name: "John", age: 30)
// Uso del tuo inizializzatore dall'estensione
let jane = Person(name: "Jane")
print(john)
print(jane)