kotlin

15. Lamda表达式

2017-11-14  本文已影响233人  厚土火焱

Lamda表达式写起来可以让代码很简单。
以两个数字求和为例

fun sum(args1: Int, args2: Int):Int {
    return args1 + args2
}
val sum2 = {arg1: Int, arg2: Int -> arg1 + arg2}

上面的代码一个是普通的函数,一个是Lamda表达式。它们的调用方式是完全相同的。

    sum(3, 5)
    sum2(3, 5)

Lamda表达式也可以写成多行

val printhello = {
    println("Hello")
}

调用方法如下

printhello()

再看 sum2 的花括号内,里面参数都有声明。其实,如果只有一个参数的话,这个参数声明都是可以省掉的。
在具体的语句中,使用 it 替代。

args.forEach{println(it)}

神奇的 Lamda 还可以更简化一下

args.forEach(::println)

上面 2 条语句的效果是一样的,都是打印出所有的参数来。然后我们利用 Lamda 的特点,给出了代码。
这个对应我们常见的代码是这样的

    for (i in args){
        println(i)
    }

使用 Lamda 表达式的写法,我们还可以写成相近的代码

    args.forEach ForEach@{
        if (it == "i") return@ForEach
        println(it)
    }

你看,这样就方便在其中添加业务逻辑了。而 ForEach@ 是标签。在遍历中,当达到条件时,使用 return 跳出标签。
综上所述,我们知道
Lamda 表达式是匿名函数

上一篇下一篇

猜你喜欢

热点阅读