References: Do it! 코틀린 프로그래밍

코틀린에서의 람다식과 사용예시에 대해 알아봅니다.

 

 

1. 람다식

 

람다식은 람다 대수에서 유래했다고 합니다. 람다식의 예시는 다음과 같습니다.

{ x, y -> x + y }

예시를 보면 함수에 이름이 없고 화살표가 사용되었습니다. 

수학에서의 람다 대수는 이름없는 함수로 2개 이상의 입력을 하나의 값으로 단순화 한다는 개념입니다.

프로그래밍에서도 유사하게 1. 함수의 이름이 없으며 2. 여러 입력값을 하나로 리턴합니다.

 

 

2. 람다함수의 사용예시.

 

실제로 람다 함수는 다음과 같이 사용됩니다.

 

fun sumFun(sum: (Int, Int) -> Int, a: Int, b: Int): Int{
    return sum(a, b)
}

fun main(){
    println(sumFun( { x, y -> x + y }, 1, 2))
}

 

fun sumFun(sum: (Int, Int) -> Int, a: Int, b: Int): Int > 람다식으로 사용할 매개변수 이름.

fun sumFun(sum: (Int, Int) -> Int, a: Int, b: Int): Int > 자료형을 람다식으로 선언.

return sum(a, b) > 매개변수로 선언한 람다식을 사용

sumFun( { x, y -> x + y }, 1, 2) 인자로 람다식을 전달

 

람다식을 변수에 저장하여 사용할 수도 있습니다.

fun main(){
    var result: Int
    val multi = { a: Int, b: Int -> a * b }
    result = mulit(2,4)
}

multi를 보면 변수에 람다식을 저장해 함수처럼 사용할 수 있는것을 알 수 있습니다.

 

val multi = { a: Int, b: Int -> a * b }

 

위 식을 좀 더 자세히 써보겠습니다.

 

val multi: (Int, Int) -> Int = { a: Int, b: Int -> a * b }

 

람다식 자료형을 모두 표현한 식입니다.

이 식은 다시 다음과 같이 나타낼 수 있습니다.

 

val multi: (Int, Int) -> Int = { a, b -> a * b }

 

첫 예시는 변수선언의 람다식 자료형을 생략한 표현이고 위의 예시는 람다식내의 매개변수 자료형을 생략한 표현입니다.

물론 두개 다 생략하면 코틀린은 더이상 자료형을 추론할 수 없어 오류가 발생합니다.

 

매개변수가 없는 람다식 표현의 경우 다음과 같이 작성하면 됩니다.

 

val printHello: () -> Unit = { println("Hello") } //OR val printHello = { println("Hello") }

 

반응형

'Programming' 카테고리의 다른 글

[Kotlin] 13. 익명함수  (0) 2019.08.23
[Kotlin] 12. 함수 호출 방법  (0) 2019.08.22
[Kotlin] 10. 함수의 매개변수  (0) 2019.08.21
[Kotlin] 09. 함수의 선언과 간략화  (0) 2019.08.21
[Kotlin] 08. 스마트 캐스트  (0) 2019.08.21

+ Recent posts