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