Implizit lazy statische Mitglieder in Swift

Mir ist gerade aufgefallen, dass static Mitglieder von Swift structs sind implizit lazy.

Zum Beispiel, dieses ruft nur die init einmal:

class Baz {
    init(){
        print("initializing a Baz")
    }
}
struct Foo {
    static let bar = Baz()
}

var z = Foo.bar
z = Foo.bar

Was ist die Logik hinter dieser?

Was ist, wenn ich will, dass die gegenüber Verhalten?

  • Es gibt einige Gründe für die Wahl für die globalen Variablen faul hier: developer.apple.com/swift/blog/?id=7. Statische Mitglieder würde vermutlich ähnliche Gründe, außer noch weniger Grund für die on-startup Initialisierung (ich meine, was, wenn Sie noch nie verwendet, eine Art, es war gerade brachte über einen import? sollten alle statischen Variablen noch initialisiert werden, unabhängig davon verwenden?)
InformationsquelleAutor cfischer | 2016-01-07
Schreibe einen Kommentar