1.定义一个带有回调函数的测试类
class DataTest(var c: Int, var d: Int, ){
var a = c
var b = d
var f1:((Int)-> Unit)?=null
fun printSelf()
{
println("a=$a,b=$b")
println("c=$c,d=$d")
f1?.invoke(c)
}
}
其中的f1即为一个回调函数,可以由外部调用者去实现。
var f1:((Int)->Unit))?=null
函数的类型需要使用括号将其包裹。
f1?.invoke(c)
这句代码为类的内部调用。
2.外部实现回调函数
fun main(){
var m = DataTest(c = 10, d = 11)
m.f1 = {
println("callback:${it}")
}
m.printSelf()
}
下面这句话为回调函数的外部定义。
m.f1 = {
println("callback:${it}")
}
3.显示结果
a=10,b=11
c=10,d=11
callback:10