DEV Community

David Goyes
David Goyes

Posted on

Swift #17: Propiedades y métodos de estáticos

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
Enter fullscreen mode Exit fullscreen mode

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)