您的位置:首页 > 其它

Kotlin的Lambda表达式小结

2017-09-18 09:50 246 查看
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) }

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Kotlin lambda