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