高阶函数的概念:
参数有函数类型或者返回值是函数类型的函数.
那么什么是函数类型呢?
函数类型可以有各种各样不同的参数和返回值的类型的搭配,这些搭配属于不同的函数类型。
例如:
(() -> Unit) 无参数无返回值
(Int -> String) 单Int型参数,返回String
(Int, Int) -> Int 双Int型参数,返回值Int型
既然函数有类型了,那我们用函数声明变量吧,它和用基本类型,用类声明变量是一样的
var myfun : (Int, Int) -> Int //函数类型
var price: Float //基本类型
var name: String //引用类型
使用场景:
private lateinit var onSelectTime: (time: String) -> Unit
fun setOnTimeSelectedListener(onSelectTime: (time: String) -> Unit) {
this.onSelectTime = onSelectTime
}
button.setOnClickListener {
onSelectTime.invoke(“时间”)
}