본문 바로가기

프로그래밍 언어/코틀린_쌩초보를 위한 기초

쌩초보를 위한 기초_27_lateinit & lazy

lateinit & lazy

 

lateinit은 late(늦게, 지연) + init(initialize: 초기 값을 설정하다)를 합친 말이다.

즉, '초기값 설정을 나중에 한다'라는 뜻을 가진다.

 

클래스에서 선언한 변수를 property(프라퍼티)라고 했다.

변수를 선언하면 기본적으로 초기화 해야 한다.

그런데 만약 객체의 정보가 나중에 나오면 선언할 때 초기화가 어려울 수 있다.

또는 변수를 사용하는 시점에 초기화를 해야 하는 경우도 있다.

이런 경우에 lateinit을 사용할 수 있다.

 

lateinit을 사용할 때 주의할 사항은 다음과 같다.

 

lateinit은 var 변수에서만 사용할 수 있다.

property에 대한 getter, setter는 사용할 수 없다.

 

늦은 초기화의 예를 만들어 본다.

 

 

main함수에서 클래스 Coding을 사용하여 language객체를 만들고

그 다음 name을 초기화해서 값(Kotlin)을 넣는다.

 

lazy를 사용한 늦은 초기화

 

lateinit 늦은 초기화는 var 변수만 사용할 수 있는데 val 변수에 늦은 초기화를 적용하려면 lazy를 사용한다.

사용할 때의 표현은 다음과 같다.

 

by lazy { 람다 }

 

by 는 '위임' 선언을 하는 키워드이다.

위임은 class나 property에 선언하여 위임 받은 객체가 작업을 대신하도록 맡기는 기능이다.