[kotlin] 스코프 함수를 사용하여 함수의 인자를 조작하기

Kotlin은 스코프 함수 라이브러리를 통해 함수의 인자를 손쉽게 다룰 수 있습니다. 스코프 함수는 객체의 컨텍스트에서 코드 블록을 실행할 수 있는 편리한 방법을 제공합니다. 이를 활용하여 함수의 인자를 조작하고 반환할 수 있습니다.

let 함수

let 함수는 null이 아닌 객체를 다룰 때 유용하며, 객체가 null이 아닌 경우에만 해당 블록을 실행합니다. 또한, it 키워드를 통해 해당 객체를 참조할 수 있습니다.

val result = nullableObject?.let {
    // nullableObject가 null이 아닌 경우 실행되는 블록
    it.doSomething()
}

run 함수

run 함수는 확장 람다 수신자인 this를 통해 객체를 참조할 수 있습니다. 객체의 속성이나 메소드에 쉽게 접근할 수 있어, 함수의 인자를 조작하기에 활용할 수 있습니다.

val result = someObject.run {
    // 객체의 컨텍스트에서 실행되는 블록
    doSomething()
}

with 함수

with 함수는 run 함수와 유사하지만, 확장 람다 수신자 대신 인자로 객체를 전달받습니다. 실제로는 확장 함수가 아닌 라이브러리 함수로 정의되어 있습니다.

val result = with(someObject) {
    // 객체의 컨텍스트에서 실행되는 블록
    doSomething()
}

apply 함수

apply 함수는 람다 수신자인 this를 통해 객체를 참조하며, 해당 객체를 반환합니다. 주로 객체를 초기화하거나 설정할 때 사용됩니다.

val result = someObject.apply {
    // 객체를 설정하는 블록
    property = value
}

also 함수

also 함수는 특정 객체에 수행할 작업을 추가할 수 있습니다. it 키워드를 통해 해당 객체를 참조할 수 있습니다.

val result = someObject.also {
    // 객체에 추가적인 작업을 수행
    doSomething()
}

각 스코프 함수는 함수의 인자를 다루는 다양한 상황에서 유용하게 활용될 수 있으므로, Kotlin에서 프로그래밍을 할 때 꼭 숙지해두어야 합니다.

참고문헌: