Kotlin的Lambda表达式小结

1.Lambda表达式就是匿名函数,Lambda表达式返回值是最后一行内容的返回值。

fun main(args: Array<String>) {
    sum(1, 2)
    //括号是运算符,等价于invoke
    sum.invoke(1, 2)
}

val sum = {param0: Int, param1: Int -> param0 + param1}

2.Lambda表达式也具有类型,类型表现形式与参数、返回值类型有关,类型是定义过的23种Function接口类型,具体可通过打印函数来查看。

3.当Lambda表达式作为函数的参数时几种语法示例:

fun main(args: Array<String>) {
    //forEach是一个扩展函数,参数是一个Lambda表达式
    args.forEach({ arg -> println(arg) })

    //Lambda表达式只有一个参数时可以直接使用it表示
    args.forEach({ println(it) })

    //函数的最后一个参数是Lambda表达式,可以把Lambda表达式移到函数的括号外面
    args.forEach() { println(it) }

    //把Lambda表达式移到函数的括号外面以后如果没有别的参数,括号也可省略
    args.forEach { println(it) }
    
    //如果函数实参Lambda表达式恰好能与形参Lambda表达式类型匹配
    //比如forEach的形参Lambda是(T) -> Unit,本示例实参传入的Lambda是(Any?) -> Unit
    //小括号内可以直接传入函数名,匿名函数传函数引用,具名函数名字前加::
    args.forEach(::println)
    args.forEach(showStr)
}

val showStr = { str: String -> println(str) }


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值