Kotlin-lambda表达式(2019-01-21)

1.Lambda表达式

 //无参数
val test = { println("无参数")}
//有参数
val test1:(Int,Int) -> Int= {a,b ->a+b}
val test2 = {a:Int,b:Int -> a+b}
//lambda表达式作为函数中的参数
fun test3(a:Int, b: ())

2.Lambda语法

  • it

    1. it并不是kotlin的一个关键字

    2.it是在当一个高阶函数中Lambda表达式的参数只有一个的时候可以使用it来使用此参数。it可表示为单个参数的隐式名称,是Kotlin语言约定的。

  • 下划线(_)
    在使用Lambda表达式的时候。可以使用下划线来表示未使用的参数,表示不处理这个参数

  • 匿名函数
    fun(x : Int , y : Int) : Int = x + y

    1. 匿名函数的特点是可以明确指定其返回值类型
    2. 它和常规函数的定义几乎相似。他们的区别在于,匿名函数没有函数名。

    匿名函数与Lambda表达式的几点区别:
    1. 匿名函数的参数传值,总是在小括号内部传递。而Lambda表达式传值,可以有省略小括号的简写写法。
    2. 在一个不带标签的return语句中,匿名函数时返回值是返回自身函数的值,而Lambda表达式的返回值是将包含它的函数中返回。

    1. 待接收者的函数字面值
    val iop = fun Int.( other : Int) : Int = this + other
    println(2.iop(3)
    //输出:5
    
    1. 闭包
      所谓闭包,即是函数中包含函数,这里的函数我们可以包含(Lambda表达式,匿名函数,局部函数,对象表达式)。我们熟知,函数式编程是现在和未来良好的一种编程趋势。故而Kotlin也有这一个特性。

你可能感兴趣的:(Kotlin-lambda表达式(2019-01-21))