こちらの記事がよくまとまっていてわかりやすかったです。
以下、個人的な備忘録です。
lazy
をつけたプロパティはLazy Stored Propery
(遅延格納型プロパティ)というLazy Stored Property
は、クラスや構造体を初期化する時点では初期化されず、初めてアクセスされた時に初期化されるlet
にlazy
はつけられないlet
はクラスまたは構造体の初期化が完了した時点で初期値を持っておかないといけないため
Lazy Stored Property
ではプロパティ監視が使えないLazy Stored Property
の初期化時には、それを持つクラス・構造体が初期化されているので、self
を使うことができる- 初期化にコストがかかるクラスや構造体のインスタンスを初期化してプロパティに持たせるという時に使うといい
- そうすることで自身の初期化のコストを抑えられる
- 自身を初期化した結果を踏まえてプロパティの初期値を設定したい時に使うといい
- selfが使えるため
Recent Comments