はじめに
遅延評価とは、必要な時まで値を代入したり計算したりを無視することをさします。
そのため、使用しない場合は計算を無視することで、処理コストを減らすことができます。
今回は、遅延評価として使用されるlateinitとlazyの違い等の紹介したいと思います。
lateinitとlazyの違い
まず、それぞれの宣言はこちらになります。
//lateinit
private lateinit var testButton: Button
private lateinit var 変数名 : 型
//lazy
private val testNumber by lazy { intent.getIntExtra("Int", 0) }
private val 変数名 by lazy { 代入したいもの }
lateinitの特徴として、
・プリミティブ型は宣言できない。
・varで宣言。
・値の変更可能。
・初期値を与えず変数を使用すると、エラーが発生します。
・nullableは使用できない。
lazyの特徴として、
・どんな型も宣言可能。
・valで宣言。
・値の変更不可能。
・初めて使用する際に初期化するため、エラーが発生しない。
以上がそれぞれの特徴と違いです!
さいごに
変数等の宣言にはいろんな方法があるので、
それぞれの特徴を活かしたコードが書けるようになりたいですね!