728x90
lateinit과 lazy는 지연 초기화를 위해 사용함.
클래스 생성 동시에 사용하지 않는 변수에 대해서는 늦게 초기화할 때 사용하며, null은 필요한 경우에 한해서 명시.
lateinit
var에 사용하고, var이기 때문에 초기화 값을 변경할 수 있음.
null을 통해서 초기화하지 않고, 초기화 전까지 해당 var 변수에는 접근하지 못함.
변수에 대해서 getter, setter를 정의할 수 없음.
모든 변수에서 가능한 것은 아니며, primitive type에 대해서는 사용 불가능.
lazy
val에 사용하고, 호출 시점에 by lazy 정의로 초기화.
val에서만 사용하기 때문에 불변이며, 초기화를 위해서 함수명을 한 번이라도 적어줘야 함.
lazy을 사용하는 경우 기본 Synchronized로 동작.
값의 교체 유무나 Nullable 필요 여부에 따라서 적절히 선택하여 사용.
728x90
'정리가 필요한 카테고리(추후 정리) > Android, iOS' 카테고리의 다른 글
코틀린(Kotlin)을 이용하면 findViewById()를 사용할 필요가 없다 (0) | 2018.07.25 |
---|---|
안드로이드 예제 - 코틀린으로 로그인-메뉴 화면 만들기 (0) | 2018.07.22 |
코틀린(Kotlin) 함수, 변수 정의 (0) | 2018.04.15 |
[Android] Xamarin으로 카메라 플래시 사용하기 (0) | 2017.09.17 |
[Android] 자마린 안드로이드 가이드 따라가기 #2 (0) | 2017.09.02 |