Propiedades en Swift: stored, computed, lazy y property observers willSet/didSet

Una propiedad lazy se inicializa solo la primera vez que se accede, lo que evita trabajo innecesario en el constructor:

class AnalizadorTexto {
    var texto: String
    lazy var palabras: [String] = {
        print("Analizando...")
        return texto.components(separatedBy: " ")
    }()
    init(texto: String) { self.texto = texto }
}

let a = AnalizadorTexto(texto: "swift es rapido")
// "Analizando..." no se imprime todavia
print(a.palabras.count)  // ahora si: 3

willSet y didSet

class Termostato {
    var temperatura: Double = 20.0 {
        willSet { print("Va a cambiar a (newValue)") }
        didSet  { print("Cambio de (oldValue) a (temperatura)") }
    }
}

let t = Termostato()
t.temperatura = 25.0
// Va a cambiar a 25.0
// Cambio de 20.0 a 25.0

Type properties: static y class

struct Configuracion {
    static let version = "2.0"
    static var instancias = 0
}

print(Configuracion.version)  // 2.0
Configuracion.instancias += 1
print(Configuracion.instancias)  // 1

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP