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)