안드로이드에서 코틀린을 사용하다 보면 종종 만나는
lateinit
lazy
에 대해서 알아보겠습니다.
이름에서처럼 늦게 시작하거나 게으른 것 처럼 동작하는데, 하나씩 좀 살펴보겠습니다.
- lateinit
아래에서 볼 수 있듯이, 먼저 선언해놓고 타입을 지정한 이후 값을 아래에서 입력할 수 있습니다.
- lazy
아래에서 볼 수 있듯이, lazy를 read-only로 선언하고 이후에 값을 초기화 해줄 수 있습니다.
그럼 2개의 차이점은 무엇일까 알아보면
lateinit -> var
lazy -> val
로 선언된 것을 확인할 수 있습니다.
때문에, lateinit은 값이 변할 수 있는 경우, lazy는 read-only로만 쓰이는 값에 쓰는 것이 적절합니다.
참조
- https://thdev.tech/kotlin/2020/11/27/kotlin_delegation/
'Android(Kotlin)' 카테고리의 다른 글
Unable to load class 'javax.xml.bind.JAXBException'. (0) | 2021.08.22 |
---|---|
DiffUtil (0) | 2021.08.22 |
rxAndroid, rxJava, rxKotlin (0) | 2021.08.22 |
Android Room (0) | 2021.08.22 |
Execution failed for task ':app:kaptDebugKotlin' (0) | 2021.08.21 |