匿名函数

  1. fun main() {
  2. val func = fun() {
  3. println("匿名函数")
  4. }
  5. println(func())
  6. val ageFun = fun(age: Int): String {
  7. return "$age 岁"
  8. }
  9. println(ageFun(23))
  10. }
  1. 匿名函数
  2. kotlin.Unit
  3. 23
  • 没有函数名字
  • 通过引用访问

匿名函数的类型

  1. val func1: () -> Unit = fun() {
  2. println("匿名函数的类型")
  3. }
  4. val ageFun1: (Int) -> String = fun(age: Int): String {
  5. return "$age 岁"
  6. }
  • () -> Unit 指的是这个函数接收无参数,无返回类型
  • (Int) -> String 指的是这个函数接收一个 Int 参数,返回 String 类型

Lambda

    val funcLambda = {
        println("Lambda 匿名函数")
    }
    val ageLambda = { age: Int ->
        "byLambda $age 岁" 
    }
  • 省略返回类型关键字 return

Lambda 参数省略形式

    // Lambda参数省略形式
    val ageLambda1: Function1<Int, String> = { age ->
        "ageLambda1 = $age 岁"
    }
  • Function1 定义了入参和返回参类型,所有lambda { } 内可省略参数类型
    val ageLambda2: Function1<Int, String> = {
        "ageLambda2 = $it 岁"
    }
  • 只有一个入参时,可省略声明参数名称,直接使用内置关键字 it 表示入参变量