Use Kotlin expression

1. The no-argument lambda expressions

val ordinary = {  println("这是一个普通的lmabda表达式") }

transfer

/** main入口函数 **/
fun main(args: Array<String>) {
    ordinary()
}

Export

这是一个普通的lmabda表达式

2. Reference lambda expressions

val  ordinary2 : (Int,Int) -> Int = {num,num2 ->  num+num2 }
    
val  ordinary3 = { num1:Int,num2:Int ->  num1+num2 }

transfer

/** main入口函数 **/
fun main(args: Array<String>) {
     println(ordinary2(1,3))
 
     println(ordinary3(3,3))
}

Export

 4
 6

3.lambda expression as a function of the parameter

invoke () function: expressed as a function call itself by variable

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
}

transfer

/** main入口函数 **/
fun main(args: Array<String>) {
    test(10,{ num1: Int, num2: Int ->  num1 + num2 })

    println(test2(10,{it > 5}))
}

Export

 18
 10

Reproduced in: https: //www.jianshu.com/p/150be8e75371

Guess you like

Origin blog.csdn.net/weixin_34166847/article/details/91283104