64.有参lambda表达式
2019-10-05 本文已影响0人
写代码的向日葵
1.lambda单独存在
/**
* 嵌套匿名函数
*/
fun main(args: Array<String>) {
//没有参数的lambda表达式
{
println("hello")
}.invoke()
val result = { a: Int, b: Int ->
a + b
}.invoke(10, 20)
println(result)
}
2.通过变量保存lambda表达式
fun main(args: Array<String>) {
//没有参数的lambda表达式
{
println("hello")
}.invoke()
val result = { a: Int, b: Int -> a + b }.invoke(10, 20)
println(result)
//可空的函数变量类型
var block: ((String) -> Unit)? = {
println(it)
}
block?.invoke("hello World")
}
3.lambda表达式的返回值
fun main(args: Array<String>) {
val result = {
10+10
'a'
}.invoke()
}
- lambda表达式的返回值是最后一行
- lambda表达式的返回值不需要return
- lambda表达式只有一个参数时可以使用it