Middle
Wie kann man einen eigenen Initializer zu einer Struktur hinzufügen, während man den Standard-Initializer beibehält?
sobes.tech KI
Antwort von AI
Standardmäßig erhalten Strukturen in Swift einen automatischen Member-Initializer, wenn keine eigenen Initializer definiert sind. Wenn Sie irgendeinen Initializer hinzufügen, wird der automatische Member-Initializer nicht bereitgestellt.
Um den automatischen Member-Initializer beizubehalten, wenn Sie eigene Initializer hinzufügen, können Sie Ihre Initializer in einer Extension platzieren. Initializer, die in einer Extension definiert sind, überschreiben den automatischen Member-Initializer nicht.
struct Person {
let name: String
let age: Int
}
extension Person {
// Ihr Initializer
init(name: String) {
self.name = name
self.age = 0 // Standardwert
}
}
// Verwendung des automatischen Member-Initializers
let john = Person(name: "John", age: 30)
// Verwendung Ihres Initializers aus der Extension
let jane = Person(name: "Jane")
print(john)
print(jane)