구성
{ 매개변수[, ...] -> 람다식 본문 }
사용 예
val sum: (Int, Int) -> Int = { x, y -> x + y }
val mul = { x: Int, y: Int -> x * y }
val add: (Int) -> Int = { it + 1 }
→
대신 it
으로 표현할 수 있다.val isPositive: (Int) -> Boolean = {
val isPositive = it > 0
isPositive
}
val isPositiveLabel: (Int) -> Boolean = number@ {
val isPositive = it > 0
return@number isPositive
}
함수의 매개변수로 함수를 받거나 함수 자체를 반환할 수 있는 함수
fun high(name: String, body: (Int)->Int): Int {
println("name: %name")
val x = 0
return body(x)
}
// 함수를 이용한 람다식
var result = high("Sean", { x -> inc(x + 3) })
// 소괄호 바깥으로 빼내고 생략
val result2 = high("Sean") { inc(it + 3) }
// 매개변수 없이 함수의 이름만 사용할 때
val result3 = high("Kim", ::inc)
// 람다식 자체를 넘겨준 형태
val result4 = high("Sean") { x -> x + 3 }
// 매개변수가 한 개인 경우 생략
val result5 = high("Sean") { it + 3 }
// 일반 매개변수가 없고 람다식이 유일한 인자라면 소괄호 생략
val result6 = highNoArg { it + 3 }