[kotlin] 코틀린에서 람다식과 고차 함수를 사용하여 함수를 반환하는 방법

람다식(Lambda Expressions)

람다식은 이름 없이 선언되는 함수로, 주로 다른 함수의 인자로 전달될 수 있거나 반환될 수 있습니다. 코틀린에서 람다식은 중괄호로 감싼 파라미터 목록과 화살표(->)로 이어진 함수 본문으로 표현됩니다.

예시:

val square: (Int) -> Int = { x -> x * x }

위의 예시에서 square는 정수를 입력으로 받아 해당 숫자의 제곱을 반환하는 함수입니다.

고차 함수(Higher-Order Functions)

고차 함수는 함수를 파라미터로 받거나 함수를 반환하는 함수입니다. 다시 말해, 고차 함수는 함수를 다루는 함수입니다.

람다식과 고차 함수를 결합하여 함수를 반환하는 예시를 살펴보겠습니다.

fun getCalculatorOperation(operationName: String): (Int, Int) -> Int {
    return when (operationName) {
        "add" -> { a, b -> a + b }
        "subtract" -> { a, b -> a - b }
        else -> throw IllegalArgumentException("Unknown operation")
    }
}

위의 코드에서 getCalculatorOperation은 함수를 반환하는 고차 함수입니다. 주어진 operationName에 따라 덧셈이나 뺄셈을 수행하는 함수를 반환합니다. 호출 방법은 다음과 같습니다.

val addFunction = getCalculatorOperation("add")
val result = addFunction(3, 5) // 결과: 8

위의 예시에서 getCalculatorOperation 함수는 람다식을 사용하여 addsubtract에 따라 다른 함수를 반환하는 것을 보여줍니다.

람다식과 고차 함수를 통해 코틀린에서 함수를 반환하는 방법을 살펴보았습니다. 이를 통해 코드를 더 모듈화하고 유연하게 작성할 수 있습니다.