[kotlin] Lateinit이나 Lazy를 통한 데이터 타입 초기화 in 코틀린
코틀린은 변수를 선언할 때 즉시 초기화하지 않아도 되는 편의성을 제공합니다. lateinit
및 lazy
를 사용하여 데이터 타입을 필요한 시점에 초기화할 수 있습니다.
Lateinit
lateinit
를 사용하면 초기화를 나중으로 미룰 수 있습니다. 보통 클래스의 프로퍼티로 사용됩니다.
lateinit var name: String
이 경우 초기화를 나중으로 미루고 싶을 때 특히 유용합니다. 하지만 초기화되기 전에 프로퍼티를 사용하면 UninitializedPropertyAccessException
이 발생할 수 있습니다. 사용 전에 초기화 여부를 항상 확인해야 합니다.
Lazy
lazy
는 처음 사용되는 시점에 초기화됩니다. 이는 애플리케이션이 실행 중에 프로퍼티를 초기화하는 데 유용합니다.
val name: String by lazy {
// 초기화 코드
"John Doe"
}
즉, name
을 처음 사용하는 순간에 초기화 코드가 실행되고, 결과값이 name
에 할당됩니다. lazy
는 스레드 안전하며, 여러 스레드가 동시에 접근하더라도 초기화 코드가 한 번만 실행됩니다.
결론
코틀린은 lateinit
및 lazy
를 통해 데이터 타입을 효율적으로 초기화할 수 있는 다양한 방법을 제공합니다. 이를 통해 프로그래밍의 유연성과 효율성을 높일 수 있습니다.
참고 문헌:
- https://kotlinlang.org/docs/properties.html#late-initialized-properties-and-variables
- https://kotlinlang.org/docs/delegated-properties.html#lazy-properties