LoginSignup
2
2

More than 5 years have passed since last update.

Swiftの変数や定数が、何故か勝手にlazyになる

Posted at

宣言時になぜか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

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2