宣言時になぜかlazy扱いになることがあるので調べて見たらテストしている方を見つけたのでご紹介したい。
func testLazy() {
// ローカル変数
let lazy4 = LazyTest(name: "lazy4 - let local")
// それぞれの変数にアクセス
println(" [1] g_lazy0: \(g_lazy0.name)")
println(" [2] lazy1: \(lazy1.name)")
println(" [3] lazy2: \(lazy2.name)")
println(" [4] Const.lazy3: \(Const.lazy3.name)")
println(" [5] lazy4: \(lazy4.name)")
[結果]
init: lazy1 - let
init: lazy4 - let local
init: g_lazy0 - let global
[1] g_lazy0: g_lazy0 - let global
[2] lazy1: lazy1 - let
init: lazy2 - lazy var
[3] lazy2: lazy2 - lazy var
init: lazy3 - static let(struct)
[4] Const.lazy3: lazy3 - static let(struct)
[5] lazy4: lazy4 - let local
deinit: lazy4 - let local