はじめに
「あれ、Lazyプロパティってなんだっけ?」と疑問に感じたため、再度Lazyについて調べることにしました。
Lazyプロパティとは?
普通のプロパティ(格納型プロパティ)は、初期化の時に値を与えず必要とされた時に値を決定することができます。
それに対し、Lazyプロパティ(遅延格納型プロパティ)は、参照される時に初めて初期値が設定されるプロパティです。
使用方法
普通
var name = "りんご"
class Fruits {
var name: String = name
}
let fruits = Fruits()
name = "ぶどう"
print(fruits.name) // りんご
Lazy
var name = "りんご"
class Fruits {
lazy var name: String = name
}
let fruits = Fruits()
name = "ぶどう"
print(fruits.name) // ぶどう
使い所
- 初期化の処理が重くかつ、使用するまで初期化する必要がない時
- インスタンスを生成した後の状態によって初期値を変えたい時
おわりに
Lazyを使用すると、開発の幅が広がると感じましたが、初期のタイミングがわかりにくいため、コードを追うのに苦労しそうだと感じました。