Kotlin/포스팅

코틀린 익명 함수

짜집퍼박사(짜박) 2023. 12. 31. 02:27

코틀린에서 익명 함수(anonymous function)는 이름이 없는 함수로서, 주로 함수형 프로그래밍에서 사용됩니다. 익명 함수는 일반 함수와 유사하지만, 함수의 이름이 없고 직접 호출될 수 있는 형태로 작성됩니다.

 

익명 함수의 기본 구조

val sum: (Int, Int) -> Int = fun(x: Int, y: Int): Int {
    return x + y
}

// 또는
val sum2 = fun(x: Int, y: Int): Int {
    return x + y
}

 

익명 함수를 인자로 받는 함수

fun operateOnNumbers(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
    return operation(a, b)
}

fun main() {
    val sumFunction: (Int, Int) -> Int = fun(x, y) = x + y

    val result = operateOnNumbers(5, 3, sumFunction)
    println(result)  // 출력: 8
}

 

익명 함수의 다양한 사용 예제

// 컬렉션의 각 요소에 대해 익명 함수 적용
val numbers = listOf(1, 2, 3, 4, 5)
val squaredNumbers = numbers.map(fun(x) = x * x)
println(squaredNumbers)  // 출력: [1, 4, 9, 16, 25]

// 필터링을 위한 익명 함수
val evenNumbers = numbers.filter(fun(x) = x % 2 == 0)
println(evenNumbers)  // 출력: [2, 4]

// reduce를 이용한 익명 함수
val product = numbers.reduce(fun(acc, next) = acc * next)
println(product)  // 출력: 120

익명 함수는 특정한 이름 없이 함수를 정의하고 사용할 수 있도록 하는 기능을 제공합니다. 하지만 주로 람다 함수가 더 간결하고 선호되므로, 대부분의 경우에는 람다 함수를 사용하는 것이 일반적입니다. 람다 함수와 익명 함수는 서로 유사하지만, 람다 함수가 훨씬 간결하게 작성할 수 있어서 람다 함수를 주로 사용하는 경향이 있습니다.

 

With ChatGPT

'Kotlin > 포스팅' 카테고리의 다른 글

코틀린 인라인 함수와 프로퍼티  (0) 2023.12.31
코틀린 호출 가능 참조  (0) 2023.12.31
코틀린 람다 함수  (0) 2023.12.31
코틀린 함수 타입  (0) 2023.12.30
코틀린 고차 함수  (0) 2023.12.30