Sobes.tech
Middle

Comment ajouter son propre initialiseur à une structure en laissant l'initialiseur par défaut?

sobes.tech IA

Réponse de l'IA

Par défaut, les structures en Swift reçoivent un initialiseur automatique de membre si vous ne définissez pas d'initialiseurs propres. Si vous ajoutez n'importe quel initialiseur, l'initialiseur automatique de membre n'est pas fourni.

Pour conserver l'initialiseur automatique de membre lors de l'ajout de vos propres initialiseurs, vous pouvez placer vos initialiseurs dans une extension. Les initialiseurs définis dans une extension n'annulent pas l'initialiseur automatique.

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

extension Person {
    // Votre initialiseur
    init(name: String) {
        self.name = name
        self.age = 0 // Valeur par défaut
    }
}

// Utilisation de l'initialiseur automatique
let john = Person(name: "John", age: 30)

// Utilisation de votre initialiseur dans l'extension
let jane = Person(name: "Jane")

print(john)
print(jane)