lambda表达式的使用

匿名函数和匿名函数的嵌套,当匿名函数是唯一参数或者是最后一个参数的时候,可以将括号省略
这里匿名函数是最后一个参数,将他从括号中提出来
class kotlinExample {
fun main(){
showOnBoard(“卫生纸”){ goodsName: String, hour:Int ->
val
currentYear = 2021
“${currentYear}年,双11${goodsName}促销倒计时: $hour 小时”
}
}
//这里的getDiscountWords是一个匿名函数,也叫lambda函数,()-> xx 括号里的是参数, xx是返回值
private fun showOnBoard(goodsName: String, getDiscountWords: (String,Int)->String ){
var hour: Int = (1..24).shuffled().last() //range表达式
println
(getDiscountWords(goodsName,hour))
}
}

Kotlin中 闭包=Lambda=匿名函数

匿名函数能修改并应用自己的作用域之外的变量,匿名函数引用着定义自身函数里的变量
能接受函数或者返回函数的函数又叫做高级函数
比如
class kotlinExample {
fun main(){
val getDiscountWords = configDiscountWords()
println(getDiscountWords(“沐浴露”))
}
fun configDiscountWords() : (String) -> String{
val currentYear = 2027
val hour = (1..24).shuffled().last()
return{ goodsName:String -> //这就是一个应用作用域之外的变量的闭包
“$currentYear 年 ,双11 $goodsName 促销倒计时: $hour 小时”
}
}
}


Java的方法:匿名内部类

Java8以上 引用一个接口作为参数,在外部实现这个接口

Kotlin的标准库函数