728x90
고차 함수
fun m1(action: () -> Unit) {
action()
}
- 고차 함수는 함수를 인자로 받거나 함수를 반환하는 함수 입니다. Kotlin 에서는 함수 매개변수를 사용할 수 있습니다.
람다 표현식
val sum: (Int, Int) -> Int = { a, b -> a + b }
println(sum(3, 4)) // 출력: 7
- 람다는 익명 함수로, 코드 블럭을 변수처럼 사용하거나 함수의 인자로 전달할 수 있게 해줍니다. 람다 표현식은 `{..}` 로 정의됩니다.
`고차 함수`와 `람다 표현식`
// 고차 함수
fun m1(action: (Int) -> String) {
println(action(1))
}
// 람다 표현식 호출
m1 {
"it is $it"
}
- 위와 코드 예제와 같이 Kotlin 에서 고차 함수는 람다 표현식으로 표현될 수 있습니다.
함수형 인터페이스 & SAM(Single Abstract Method) 변환
// 함수형 인터페이스
interface IDoingThing {
fun doThing()
}
// 함수형 인터페이스를 인자로 가지는 함수
fun m2(arg1: IDoingThing) {
arg1.doThing()
}
// 람다 표현식 변환 호출
// IDoingThing 인터페이스의 doThing 을 람다 표현식으로 재정의 한거처럼 표현됩니다.
m2 {
println("Doing something")
}
- `함수형 인터페이스`는 단일 메서드를 가지는 인터페이스를 일컫습니다.
- Kotlin 에서는 위와 같은 `함수형 인터페이스`에 대해 람다 표현식으로 대체할 수 있습니다.
728x90