코틀린은 유독 null에 예민합니다.
자바로 안드로이드를 개발하닥 코틀린으로 넘어왔는데
좀 특이한 lateinit 과 lazy라는 것을 발견했습니다.
간단하게 2가지의 차이점을 찾아보니
lateinit 일단 변수부터 선언하고 난 뒤에 값을 할당해준다. 라고 생각하면 될 듯 합니다.
private var abc:String 이라고 선언을 했을 때 변수 abc가 초기화되지 않았다고 해서 에러메세지가 나오는데
private lateinit var abc:String 이라고 하면 따로 에러가 나오지 않습니다.
이름 그대로 나중에 초기화를 해준다 라고 생각하면 될 듯 합니다.
그렇다면 lazy는 무엇일까요
lazy도 마찬가지도 나중에 초기화를 시켜주는 형태지만
Callback처럼 초기화 시점을 고민하지 않고 쓸 수 있는 형태 라고 생각하시면 됩니다.
private val abc:String by lazy
위와 같이 사용할 수 있고
디테일한 부분은 다른 문서 참고하시면 될 것 같고
실무에는 이정도만 알고 있으면 될 듯 합니다.
'개발 > Kotlin' 카테고리의 다른 글
lambda 람다식이란 (0) | 2019.08.14 |
---|---|
인터페이스(interface) (0) | 2019.07.27 |
추상클래스(abstract class)란? (0) | 2019.07.27 |
kotlin 물음표(?) 와 느낌표(!!)에 대해서 (3) | 2019.06.21 |
Kotlin 이란 (0) | 2019.05.20 |