개발/Kotlin

Kotlin lateinit and lazy

개복치 개발자 2019. 6. 21. 01:37

 

 

코틀린은 유독 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