Replies: 2 comments
-
lateinit 과 by lazy 는 모두 지연 초기화를 위한 kotlin 에서 제공하는 기능입니다. lateinit var 의 경우 초기화되지 않았는데 참조하게될 경우, UninitializedPropertyAccessException 이 발생합니다. |
Beta Was this translation helpful? Give feedback.
0 replies
-
두 가지 모두 변수를 초기화할 때 사용되는 개념 lateinit변수를 선언하고 나중에 초기화 하고 싶은 경우에 사용됩니다. nullable하게 초기화 하는 방법도 있지만(코틀린에서는 지양), lateinit을 사용하면 변수가
by lazy변수를 선언하고 나중에 초기화 하고 싶은 경우에 사용됩니다. nullable하게 초기화 하는 방법도 있지만(코틀린에서는 지양), by lazy을 사용하면 변수가
비교
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
lateinit과 by lazy는 각각 초기화가 지연되는 프로퍼티를 선언할 때 사용하는 키워드입니다.
lateinit은 var 변수에만 사용 가능하며, 변수를 나중에 초기화할 필요가 있으며 자주 값이 바뀔 수 있을 때 주로 사용합니다. 초기화되지 않은 상태에서 참조할 경우 예외(UninitializedPropertyAccessException)가 발생하므로 주의가 필요합니다. 또, Primitive Type (Int, Float, Double, Long 등)은 기본값이 있기 때문에 사용할 수 없습니다.
by Lazy는 val 변수에서만 사용 가능하며, 처음 호출될 때 초기화되는 지연 초기화 방식입니다. 불변 객체를 필요할 때 한 번만 생성하고 싶을 때 사용하며, 스레드 안전성이 보장되기 때문에 멀티 스레드 환경에서 유용하게 사용할 수 있습니다.
Beta Was this translation helpful? Give feedback.
All reactions