美文网首页Kotlin从入门到放弃述术白话kotlin
白话kotlin:lambda表达式和高阶函数是什么玩意?

白话kotlin:lambda表达式和高阶函数是什么玩意?

作者: linheimx | 来源:发表于2017-05-26 14:29 被阅读461次

    lambda表达式是什么玩意?

    一言蔽之:lambda表达式就是一个匿名函数
    我们通常这样写匿名函数:


    匿名函数

    这样写可能有点麻烦,我们使用lambda表达式可以这么写:


    lambda
    嘿嘿,是不是简介了很多,当然还可以更加简洁。

    lambda如何写?

    1. 声明


    2. 实现
      可以这么写:



      由于知道了出入参数的是什么类型,我们还可以这么写:



      嘿嘿,是不是很简洁。

    更加简洁:
    考虑到通常情况下,匿名函数只有一个参数,所以咱们的lambda可以这么写:

    it

    注意:
    在lambda中不可用直接使用return:


    你可以使用return+label这种形式:

    lambda中最后一个表达式的值是默认的返回值:

    高阶函数是啥玩意?

    高阶函数名字起的很高大上,其实它就是个函数。
    只不过这个函数特征是:参数是函数,或者返回值是函数,如下图:

    1. 参数是函数


    2. 返回值是函数


    解释:
    在kotlin中,函数是一种类型,所以我们可以把一个具体的函数当成对象。
    既然函数是一个对象啦,我们想怎么玩这个对象就怎么玩。
    比如:

    1. 把函数当成参数传递
    2. 把函数当成返回值传递出来

    如何将函数传递给高阶函数?
    我们明白了高阶函数的定义,那么如何给高阶函数传参呢?

    实用场景:
    比如我们要对int的集合做变换:


    你现在只要提供一个变换函数即可,想怎么变换由你,是不是很灵活!

    白话kotlin系列

    1. 白话kotlin:向空指针异常说再见
    2. 白话kotlin:lambda表达式和高阶函数是什么玩意?
    3. 白话kotlin:内联函数助你提升运行效率
    4. 白话kotlin:用协程来愉快的处理异步问题
    5. 白话kotlin:有意思的拓展
    6. 白话kotlin: 简单的理解 关键词object

    相关文章

      网友评论

      本文标题:白话kotlin:lambda表达式和高阶函数是什么玩意?

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