匿名函数:
1.定义:
顾名思义,不取名字的函数,匿名函数通常整体传递给其他函数,或者从其他函数返回
2.函数类型:
匿名函数可以当作变量赋值给函数类型变量;通常情况下,匿名函数不需要return 关键字来返回数据,匿名函数会隐式或自动返回函数体最后一行语句的结果
示例:
val testFun:(String)->String = {
val day = "Birthday。"
"Happy $day"
}
println(testFun ())
//输出结果:Happy Birthday。
3.匿名函数参数:
可以带参数,也可以不带参数;带参数时,参数类型放在匿名函数的类型定义中,参数明则放在函数定义中
示例:
val testFun:(String)->String = {
val day = "Birthday."
"$it,happy $day"
}
print(testFun("XiaoMing"))
//当只有一个参数时,可以使用it;输出结果:
//Xiaoming,happy BIrthday.
4.类型判断:
定义一个变量时,如果已把匿名函数作为变量赋值给他,就不需要指明变量类型
示例:
val testFun = {
val day = "Birthday。"
"Happy $day"
}
println(testFun ())//无参
val testFun1 = {
name:String ->
val day = "Birthday。"
"Happy $day"
}
println(testFun ())//无参
5.定义参数是函数的函数
简单示例:
val getWorlds : () ->String = {
val man = "xiong"
val women = "zeng"
"$man love $women"
}
fun sayWorlds(string: String,getWorlds:()-> String){
print("$string,"+getWorlds())
}
sayWorlds("True",getWorlds)
}