object Test {
@JvmStatic
fun main(args: Array<String>) {
println("Hello World")
val d = D()
test(1, 2, d::lala, ::test2)
test(10, 20, ::test1, ::test2)
test(111) {
test1(it)
}
test(222, d::lala)
}
private fun test1(a: Int) {
println("test1 $a")
}
private fun test2(a: Int, b: Int) {
println("test2 $a $b")
}
private fun test(a: Int, b: Int, fun1: (Int) -> Unit, fun2: (Int, Int) -> Unit) {
println("test $a $b")
fun1(a)
fun2(a, b)
}
private fun test(a: Int, fun1: (Int) -> Unit) {
println("test $a")
fun1(a)
}
class D {
fun lala(l: Int) {
println("lala $l")
}
}
}
还可参考:
Kotlin之高阶函数的用法(将函数作为参数传递)_kotlin 函数作为参数-CSDN博客