美文网首页kotlin
15. Lamda表达式

15. Lamda表达式

作者: 厚土火焱 | 来源:发表于2017-11-14 13:21 被阅读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 表达式是匿名函数

    相关文章

      网友评论

        本文标题:15. Lamda表达式

        本文链接:https://www.haomeiwen.com/subject/sybxvxtx.html