[kotlin] 코틀린에서 람다식과 고차 함수를 사용하여 지연 초기화(lazy initialization)를 구현하는 방법

지연 초기화(lazy initialization)는 객체의 초기화를 필요한 시점까지 미루는 것을 말합니다. 코틀린에서는 람다식과 고차 함수를 사용하여 지연 초기화를 구현할 수 있습니다.

람다식을 사용한 지연 초기화

람다식을 사용하여 프로퍼티에 대해 지연 초기화를 구현할 수 있습니다.

val lazyProperty: String by lazy {
    "I am a lazy initialized property"
}

이 예제에서 lazy 함수는 람다식을 인자로 받아 지연 초기화된 프로퍼티를 생성합니다. 처음으로 lazyProperty에 접근할 때까지 람다식은 실행되지 않습니다.

고차 함수를 사용한 지연 초기화

고차 함수를 사용하여 커스텀하게 지연 초기화를 구현할 수도 있습니다.

fun doSomethingWithLazyInitialization(action: () -> String): String {
    return action()
}

val result = doSomethingWithLazyInitialization {
    "I am a lazily initialized result"
}

이 예제에서 doSomethingWithLazyInitialization 함수는 람다식을 인자로 받아 실행하고 결과를 반환합니다. 이를 통해 원하는 시점에 지연 초기화된 값을 반환할 수 있습니다.

코틀린에서는 람다식과 고차 함수를 통해 간편하고 유연하게 지연 초기화를 구현할 수 있습니다.

이상으로 코틀린에서 람다식과 고차 함수를 사용하여 지연 초기화하는 방법을 알아보았습니다.


위 내용은 Kotlin 공식 문서Kotlin In Action을 참고하여 작성하였습니다.