スウィフトstructs
のメンバーstatic
が暗黙のうちにlazy
であることに気がつきました。例えばSwiftの暗黙の静的メンバー
、これは一度だけinit
を呼び出します:
class Baz {
init(){
print("initializing a Baz")
}
}
struct Foo {
static let bar = Baz()
}
var z = Foo.bar
z = Foo.bar
この背後にある論理的根拠は何?
逆の動作をしたい場合はどうすればよいですか?
ここに怠けているグローバル変数の選択には、いくつかの根拠があります:https://developer.apple.com/swift/blog/?id=7。静的メンバーはおそらく同様の根拠を持っていますが、起動時の初期化の理由はそれほどありません(つまり、タイプを使用したことがない場合は、インポートによって取り込まれましたか? ?) –