-
[안드로이드 - 코틀린] 지연된 초기화(by lazy)Coding/Android 2019. 8. 6. 20:14
기본적으로 코틀린의 경우 변수 선언과 초기화를 동시에 하는 경우가 많습니다.
하지만 안드로이드 개발을 하다보면 어떠한 변수든, 객체든 초기화를 선언보다 늦게 해야할 경우가 있습니다.
이를 지연된 초기화라 하며, 지연된 초기화 두개 중 (lateinit, lazy)
lazy는 val 변수에 대해 적용할 수 있는(값이 변하지 않는) 지연된 초기화 입니다.
val lazyValue: String by lazy { println("computed!") "Hello" } fun main(args: Array<String>) { println(lazyValue) println(lazyValue) }
by lazy로 지연된 초기화가 된 변수의 경우, 맨 처음 호출된 이후에 초기화가 이루어집니다.
따라서 lazyValue는 맨 처음 println("computed!")를 거친 이후, "Hello"로 초기화됩니다.
따라서 출력값은
computed!
Hello
Hello
이렇게 출력 될 것입니다.
'Coding > Android' 카테고리의 다른 글
[안드로이드 스튜디오] TODO를 이용하여 효율적으로 개발하기 (0) 2019.08.06 [안드로이드 - 코틀린] 센서 값 Delay 속도 지정하기 (0) 2019.08.06 [안드로이드 - 코틀린] 옵션 메뉴 아이콘 showAsAction 속성 (0) 2019.07.31 [안드로이드] 인터넷 권한 부여하기 (0) 2019.07.06 [안드로이드] EditText의 Enter 키 아이콘 활성하기 (0) 2019.07.01