1.无参lambda表达式
val ordinary = { println("这是一个普通的lmabda表达式") }
调用
/** main入口函数 **/
fun main(args: Array<String>) {
ordinary()
}
输出
这是一个普通的lmabda表达式
2.有参lambda表达式
val ordinary2 : (Int,Int) -> Int = {num,num2 -> num+num2 }
val ordinary3 = { num1:Int,num2:Int -> num1+num2 }
调用
/** main入口函数 **/
fun main(args: Array<String>) {
println(ordinary2(1,3))
println(ordinary3(3,3))
}
输出
4
6
3.lambda表达式作为函数中的参数
invoke()函数:表示为通过函数变量调用自身
fun test(a : Int, ordinary4 : (num1: Int,num2: Int) -> Int){
println(a+ordinary4.invoke(3,5))
}
fun test2(num1 : Int, bool : (Int) -> Boolean) : Int{
return if (bool(num1)){ num1 } else 0
}
调用
/** main入口函数 **/
fun main(args: Array<String>) {
test(10,{ num1: Int, num2: Int -> num1 + num2 })
println(test2(10,{it > 5}))
}
输出
18
10
网友评论