코틀린

18. lateinit and lazy

mks160615 2025. 2. 11. 19:35

왜 사용할까?

코드를 작성하다 보면 바로 변수를 선언하기 곤란할 때가 있다. 이때 Null을 기본적으로 선언하기 곤란한 코틀린에서는 이 문제를 해결하기 위해 lateinit과 lazy를 사용한다. lateinit은 변수(var)에 lazy는 상수(val)에서 사용한다.

lateinit var name : String
name = "Messi"
println(name)

 

lateinit을 사용할 때 var 앞에 lateinit을 붙여준다.

val lazyBear : String by lazy {
    println("Bear is coming.")
    "Teddy Bear"
}

println("First Bear")
println(lazyBear) // "Bear is coming." 출력

println("Second Bear")
println(lazyBear) // "Teddy Bear"만 리턴

 

lazy를 사용할 때는 리턴할 자료형을 변수명 : 과 by lazy 사이에 작성한다.

 

주의!

lateinit과 lazy는 참조자료형에서만 사용이 가능하다. int와 같은 기본 자료형에서는 사용할 수 없다.

(기본자료형과 참조자료형의 차이는 구글에서 검색하면 많이 나오는 주제이다. 이 블로그에서는 코틀린에 더 집중하기 위해 생략하였다.)

 

 

02-02 기본 자료형

앞서 살펴본 바 변수라는 컵에 담길수 있을 만큼 작은 데이터 형을 기본 자료형이라고 배웠습니다. 그럼 자바에는 기본 자료형이 어떤 것이 있는지 알아 봅시다. 자바에는 기본 자…

wikidocs.net

자바이지만 기본 자료형에 설명이 잘 되어있으니 위 링크도 참고하면 좋을 것이다.

 

 

GitHub - KrillM/Kotlin_Again: init project

init project. Contribute to KrillM/Kotlin_Again development by creating an account on GitHub.

github.com

 

'코틀린' 카테고리의 다른 글

17. Null  (0) 2025.02.08
16. 인터페이스  (0) 2025.02.06
15. 클래스 - Object  (0) 2025.02.06
14. 추상 클래스, 데이터 클래스  (0) 2025.02.05
13. 클래스 - 상속  (0) 2025.01.29