본문 바로가기
Languages/Kotlin

[Kotlin] lateinit과 lazy

by jbrochan 2023. 3. 9.

코틀린을 사용할 때 최상위 선언 변수나 클래스의 멤버 변수의 경우 선언과 동시에 초기화를 해줘야한다.

하지만 lateinitlazy 키워드를 사용하면 초기화를 미룰 수 있다.

 

lateinit

lateinit을 사용한 변수는 선언과 동시에 초기화 하지 않아도 되지만 다음과 같은 규칙을 따라야한다.

  • lateinit은 var으로 선언된 변수에만 사용할 수 있다.
  • lateinit은 Int, Long, Short, Double, Float, Boolean, Byte 타입에는 사용이 불가하다.
lateinit var num1: Int    // 성공
lateinit val num2: Int    // 오류

lazy

lazy 키워드는 변수의 선언문 뒤에 by lazy{} 형식으로 선언하며 해당 변수가 처음으로 이용되는 순간

중괄호 안에 있는 부분이 자동으로 실행되고, 그 결과값으로 초기화된다.

var num1: Int by lazy{
    println("lazy variable")
    10
}    // 성공 -> 해당 변수는 10으로 초기화

'Languages > Kotlin' 카테고리의 다른 글

[Kotlin] 함수의 선언  (0) 2023.03.13
[Kotlin] 널 허용과 불허용(Nullable and Non-null)  (0) 2023.03.09
[Kotlin] 데이터 타입  (0) 2023.03.09
[Kotlin] 변수의 선언과 초기화  (0) 2023.03.08
[Kotlin] Kotlin에 대하여  (0) 2023.03.08

댓글