美文网首页
Kotlin Lambda表达式

Kotlin Lambda表达式

作者: Joe_blake | 来源:发表于2020-12-21 14:58 被阅读0次

    Lambda表达式是函数类型的对象,实质上是Kotlin匿名函数的一种特殊写法。

    Lambda表达式的演化
    以OnClickListener为例

    完整的匿名函数

    //声明函数对象
    val a = fun(v: View): Unit {
        back(v)
    }
    
    //作为方法传参
    img_back?.setOnClickListener(fun(v: View): Unit {
        back(v)
    })
    

    省略函数形式定义

    //声明函数对象
    val a = { v: View ->
        back(v)
    }
    //作为方法传参
    img_back?.setOnClickListener({ v: View ->
        back(v)
    })
    

    Lambda表达式特殊写法

    作为参数的最后一个时,可以写在括号外

    img_back?.setOnClickListener() { v: View ->
        back(v)
    }
    

    匿名函数只有一个参数时,可以省略,使用it代替

    img_back?.setOnClickListener() { 
        back(it)
    }
    

    调用函数只有一个传参,即Lambda表达式代表的函数对象时,可省略()

    img_back?.setOnClickListener { 
        back(it)
    }
    

    返回值
    Lambda 的返回值不是用 return 来返回,而是直接取最后一行代码的值。使用return时,是作为它外层函数的返回值来直接结束外层函数。

    相关文章

      网友评论

          本文标题:Kotlin Lambda表达式

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