Kotlin中回调函数的使用示例
1.定义一个带有回调函数的测试类
class DataTest(var c: Int, var d: Int, ){var a = cvar b = dvar f1:((Int)-> Unit)?=nullfun 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