Kotlin的Lambda表达式小结

来源:互联网 发布:双十一淘宝购物技巧 编辑:程序博客网 时间:2024/06/08 13:24

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) }


原创粉丝点击