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)