반응형
출처: https://twinparadox.tistory.com/428
lateinit과 lazy는 지연 초기화를 위해 사용함.
클래스 생성 동시에 사용하지 않는 변수에 대해서는 늦게 초기화할 때 사용하며, null은 필요한 경우에 한해서 명시.
lateinit
var에 사용하고, var이기 때문에 초기화 값을 변경할 수 있음.
null을 통해서 초기화하지 않고, 초기화 전까지 해당 var 변수에는 접근하지 못함.
변수에 대해서 getter, setter를 정의할 수 없음.
모든 변수에서 가능한 것은 아니며, primitive type에 대해서는 사용 불가능.
lazy
val에 사용하고, 호출 시점에 by lazy 정의로 초기화.
val에서만 사용하기 때문에 불변이며, 초기화를 위해서 함수명을 한 번이라도 적어줘야 함.
lazy을 사용하는 경우 기본 Synchronized로 동작.
값의 교체 유무나 Nullable 필요 여부에 따라서 적절히 선택하여 사용.
반응형
'개발 > 코틀린(kotlin)' 카테고리의 다른 글
[Kotlin] 코틀린의 기초#3 iteration, for, while, in (0) | 2020.01.28 |
---|---|
[Kotlin] 코틀린 기초 #2 enum, when (0) | 2020.01.28 |
[Kotlin] 코틀린의 기초#1 - 함수,변수,클래스,property (0) | 2020.01.28 |
[Kotlin] 코틀린이란? (0) | 2020.01.28 |
kotlin android extensions (0) | 2020.01.27 |
댓글