🐏
람다
March 01, 2023
정의
- 익명 함수
- 변수처럼 사용될 수 있음
- (Argument Type) → Return Type
- 한 번 사용되고 재사용되지 않는 함수
구현
fun main() {
val a = fun() { println("hello") }
val b: (Int) -> Int = { it * 10 }
println(b(10)) // 100
val c = { i: Int, j: Int -> i * j }
val d: (Int, String, Boolean) -> String = { a, b, c -> b }
hello(10, b) // 200
}
fun hello(a: Int, b: (Int) -> Int) {
println(b(20))
}
SAM (Single Abstract Method)
- 단일 추상 메소드
- 코틀린에서 함수형 인터페이스를 인자로 받는 자바 함수를 호출할 때는 인터페이스 객체를 람다로 대신 넘길 수 있음
- 함수형 인터페이스: 추상 메소드가 오직 하나뿐인 인터페이스(ex. setOnClickListener)