Sobes.tech
Middle

¿Cómo se puede agregar un inicializador propio a una estructura, dejando el inicializador predeterminado?

sobes.tech AI

Respuesta de la IA

Por defecto, las estructuras en Swift reciben un inicializador automático de miembro si no defines ningún inicializador propio. Si añades cualquier inicializador, el inicializador automático de miembro no se proporciona.

Para mantener el inicializador automático de miembro al agregar tus propios inicializadores, puedes colocar tus inicializadores en una extensión (extension). Los inicializadores definidos en una extensión no anulan el inicializador automático de miembro.

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

extension Person {
    // Tu inicializador
    init(name: String) {
        self.name = name
        self.age = 0 // Valor por defecto
    }
}

// Uso del inicializador automático de miembro
let john = Person(name: "John", age: 30)

// Uso de tu inicializador desde la extensión
let jane = Person(name: "Jane")

print(john)
print(jane)