一、普通表达式

 格式

() -> Unit//表示无参数无返回值的Lambda表达式类型

(T) -> Unit//表示接收一个T类型参数,无返回值的Lambda表达式类型

(T) -> R//表示接收一个T类型参数,返回一个R类型值的Lambda表达式类型

(T, P) -> R//表示接收一个T类型和P类型的参数,返回一个R类型值的Lambda表达式类型

(T, (P,Q) -> S) -> R//表示接收一个T类型参数和一个接收P、Q类型两个参数并返回一个S类型的值的Lambda表达式类型参数,返回一个R类型值的Lambda表达式类型

 例子

fun main() {

print(test1(3, 2))
//和上面相同
print(test1.invoke(3, 2))

print(test3(3, 2))
}

//lambda表达式
val test1 = { a: Int, b: Int -> a + b }

//普通函数
fun test2(a: Int, b: Int):Int{
return a+b
}
//函数简写
fun test3(a: Int, b: Int)=a+b

 

 

二、带接收者的lambda