Ho appena notato che i membri static
di Swift structs
sono implicitamente lazy
.Membri static staticamente pigri in Swift
Per esempio, questo sarà solo chiamare la init
volta:
class Baz {
init(){
print("initializing a Baz")
}
}
struct Foo {
static let bar = Baz()
}
var z = Foo.bar
z = Foo.bar
Qual è la logica dietro questo?
E se volessi il comportamento contrario?
C'è qualche logica per la scelta di variabili globali che sono pigre qui: https://developer.apple.com/swift/blog/?id=7. I membri statici presumibilmente avrebbero una logica simile, eccetto ancora meno ragioni per l'inizializzazione all'avvio (cioè, se non si fosse mai nemmeno usato un tipo, è stato appena introdotto tramite un'importazione? Tutte le variabili statiche potrebbero essere inizializzate indipendentemente dall'uso ?) –