PHpullh
학습 라이브러리/Kotlin/익명 함수 (Anonymous Functions)

KOTLIN · 함수

익명 함수 (Anonymous Functions)

람다와 달리 반환 타입을 명시하고 return으로 해당 함수에서만 반환합니다. 비지역 반환이 필요 없을 때 유용합니다.

함수중급anonymous-functionreturnnon-local-returnlambda

핵심 설명

람다와 달리 반환 타입을 명시하고 return으로 해당 함수에서만 반환합니다. 비지역 반환이 필요 없을 때 유용합니다.

Kotlin code

fun main() {
    // 익명 함수: return이 자기 자신에서 반환
    val square = fun(x: Int): Int {
        return x * x
    }

    // 람다: return은 외부 함수에서 반환 (비지역 반환)
    val items = listOf(1, 2, 3, 4, 5)

    // 익명 함수 사용 - 필터링에서 안전
    val evens = items.filter(fun(n: Int): Boolean {
        return n % 2 == 0
    })

    // 여러 반환 지점이 필요한 경우
    val classify = fun(score: Int): String {
        if (score >= 90) return "A"
        if (score >= 80) return "B"
        if (score >= 70) return "C"
        return "F"
    }

    println(square(5))           // 25
    println(evens)               // [2, 4]
    println(classify(85))        // B
}

학습 팁

익명 함수의 return은 항상 해당 익명 함수에서만 반환합니다. 인라인 함수 내에서 비지역 반환을 원치 않을 때 유용합니다.

주의할 점

람다 내의 return은 바깥 함수에서 반환됩니다(비지역 반환). 이를 방지하려면 익명 함수를 사용하거나 return@label을 사용하세요.

자주 묻는 질문

익명 함수 (Anonymous Functions)란 무엇인가요?

람다와 달리 반환 타입을 명시하고 return 으로 해당 함수에서만 반환합니다. 비지역 반환이 필요 없을 때 유용합니다.

익명 함수 (Anonymous Functions) 학습 시 주의할 점은 무엇인가요?

람다 내의 return 은 바깥 함수에서 반환됩니다(비지역 반환). 이를 방지하려면 익명 함수를 사용하거나 return@label 을 사용하세요.