Kotlin 고차 함수(Higher-Order Functions) 완벽 가이드

✨ 개요

Kotlin에서 고차 함수(Higher-Order Function) 란 다른 함수를 인자로 받거나, 함수를 반환하는 함수를 의미합니다. 함수 자체를 일급 객체로 다룰 수 있기 때문에 함수형 프로그래밍 스타일을 자연스럽게 지원합니다.


1. 🔧 기본 사용법

fun calculate(x: Int, y: Int, op: (Int, Int) -> Int): Int {
  return op(x, y)
}

val result = calculate(3, 5) { a, b -> a + b } // 8

2. ✅ 자주 쓰이는 예시 함수들


3. ✅ 람다, 스코프, 코루틴 연계

3.1 람다와 고차함수

fun operate(a: Int, b: Int, action: (Int, Int) -> Int): Int {
    return action(a, b)
}

val result = operate(3, 5) { x, y -> x + y }  // 람다 전달

3.2 스코프 함수와 고차함수 – DSL 스타일 코드

val user = User().apply {
    name = "Jane"
    age = 25
}

// 직접 구현
inline fun <T> T.myApply(block: T.() -> Unit): T {
  block() // 수신 객체로 실행
  return this
}

3.3 코루틴과 고차함수 – 비동기 로직 최적화

suspend fun loadData(action: suspend () -> Unit) {
    println("Start loading")
    action() // 고차함수 실행
    println("End loading")
}

loadData {
  delay(1000)
  println("Data fetched!")
}

4. ⚠️ 고차 함수의 장점

fun repeatTask(times: Int, task: () -> Unit) {
    repeat(times) { task() }
}

5. 🧾 결론

Kotlin에서 고차 함수는 함수형 프로그래밍을 지원하고, 람다와 함께 코드의 유연성과 가독성을 높이는 강력한 도구입니다. 실제 프로젝트에서는 콜백 처리, 컬렉션 조작, DSL 작성 등 다양한 상황에서 광범위하게 사용되며, Kotlin의 핵심 기능 중 하나로 익혀두면 큰 도움이 됩니다.



Related Posts