공부 내용


4장. 코틀린의 표준함수 활용하기

6-1 람다식과 고차함수

람다식

구성

{ 매개변수[, ...] -> 람다식 본문 }

사용 예

val sum: (Int, Int) -> Int = { x, y -> x + y }
val mul = { x: Int, y: Int -> x * y }

val add: (Int) -> Int = { it + 1 } 
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 }