2016-09-20 3 views

答えて

2

はい構造体は怠惰な性質を持つことができます。この例を考えてみましょう:

class Stuff { 
    var stuff: Int 

    init(value: Int) { 
     print("Stuff created with value \(value)") 
     stuff = value 
    } 
} 

struct HasLazy { 
    lazy var object = Stuff(value: 1) 
    var object2 = Stuff(value: 2) 
} 

func testIt() { 
    print("in testIt") 

    var haslazy = HasLazy() 

    print("done") 
    haslazy.object.stuff = 17 
    print("\(haslazy.object.stuff)") 
    print("final") 
} 

testIt() 

出力:プロパティは、プロパティに最初にアクセスしたときに"done"プリント後まで初期化されませんlazyをマークしていること

in testIt 
Stuff created with value 2 
done 
Stuff created with value 1 
17 
final 

注意してください。

hereのアクションを参照してから、lazyというキーワードを付けずに試してみてください。

+0

OK私が探していたものだけで完璧です。ありがとう! – FTNomad

関連する問題