Sobes.tech
Middle

Cum poți adăuga propriul tău inițializator într-o structură, păstrând inițializatorul implicit?

sobes.tech AI

Răspuns de la AI

În mod implicit, structurile în Swift primesc un constructor automat de membru dacă nu definești niciun constructor propriu. Dacă adaugi orice constructor, constructorul automat de membru nu mai este furnizat.

Pentru a păstra constructorul automat de membru atunci când adaugi propriile constructori, îl poți plasa într-o extensie (extension). Constructorii definiți în extensie nu anulează constructorul automat de membru.

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

extension Person {
    // Constructorul tău
    init(name: String) {
        self.name = name
        self.age = 0 // Valoare implicită
    }
}

// Utilizarea constructorului automat de membru
let john = Person(name: "John", age: 30)

// Utilizarea propriului constructor din extensie
let jane = Person(name: "Jane")

print(john)
print(jane)