En ocasiones, tiene sentido asignar propiedades y métodos a un tipo de dato, porque no es información que se pueda asignar a una instancia específica.
Las propiedades y métodos estáticos se declaran con la palabra clave static, y solo pueden ser accedidos desde el tipo de dato.
struct Person {
var age: Int
var name: Int
static var peopleCount = 7
static func createPerson() -> Person {
Person.peopleCount += 1
return Person(age: 0, name: "Desconocido")
}
}
print(Person.peopleCount) // 7
let juan = Person.createPerson()
print(Person.peopleCount) // 8
Inicialización de Propiedades Estáticas Almacenadas
A diferencia de las propiedades de instancia almacenadas, siempre se debe dar un valor por defecto a las propiedades estáticas almacenadas.
Las propiedades estáticas almacenadas se inicializan de forma perezosa en el primer acceso. Se garantiza que se inicializan una sola vez, incluso cuando son accedidas por múltiples hilos de forma simultánea, y no necesitan ser marcadas con el modificador lazy.
Top comments (0)