Sobes.tech
Middle

Hoe voeg je je eigen initializer toe aan een structuur, terwijl je de standaard initializer behoudt?

sobes.tech AI

Antwoord van AI

Standaard krijgen structuren in Swift een automatische lid- initializer als je geen eigen initializers definieert. Als je elke initializer toevoegt, wordt de automatische lid- initializer niet geleverd.

Om de automatische lid- initializer te behouden bij het toevoegen van je eigen initializers, kun je ze plaatsen in een extension. Initializers die in een extension worden gedefinieerd, annuleren de automatische lid- initializer niet.

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

extension Person {
    // Jouw initializer
    init(name: String) {
        self.name = name
        self.age = 0 // Standaardwaarde
    }
}

// Gebruik van de automatische lid- initializer
let john = Person(name: "John", age: 30)

// Gebruik van je eigen initializer uit de extension
let jane = Person(name: "Jane")

print(john)
print(jane)