一 定义
定义时不取名字的函数,我们称之为匿名函数,匿名函数通常整体传递给其他函数或者从其他函数返回
二 隐私返回
匿名函数可以定做变量赋值给函数类型的变量,就像其他变量一样,匿名函数就可以在代码里传递了
和具名函数不一样,除少数情况外,匿名函数不需要return关键字来返回数据,它会隐式或自动返回函数体的最后一行语句的结果
val blessingFunction:()->String={
val holiday="New Year."
"Happy $holiday"
}
三 函数参数
和具名函数一样,匿名函数可以不带参数,也可以带一个或多个任何类型的参数,需要参数时,参数的类型放到匿名函数的类型定义中,参数名放到函数定义中
val blessingFunction:(String)->String={name->
val holiday="New Year."
"$name, Happy $holiday"
}
当定义只有一个参数的匿名函数时,可以使用it关键字来表示参数名,当需要传入两个参数时,it关键字就不能用了
val blessingFunction:(String)->String={
val holiday="New Year."
"$it, Happy $holiday"
}
四 类型推断
返回值类型可以自动推断,就不需要写返回值类型
val blessingFunction = {
val holiday="New Year."
"$it, Happy $holiday"
}
推断带参数的匿名函数,为了帮助编译器推断,匿名函数的参数名和参数类型必须有
val blessingFunction:{name:String,year:Int->
val holiday="New Year."
"$name, Happy $holiday $year"
}