天天看点

kotlin lambda表达式

一、普通表达式

 格式

() -> 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