在Kotlin中传递和使用函数作为构造函数参数
如何创建一个将函数作为构造函数参数的类。 然后,在课程的稍后阶段使用此功能。
你可以像使用其他类型一样拥有一个函数类型的属性:
class A(val f: () -> Unit) { fun foo() { f() } }
从这里,你可以将该函数作为方法引用传递给构造函数:
fun bar() { println("this is bar") } val a = A(::bar) a.foo() // this is bar
或者作为lambda:
val a = A({ println("this is the lambda") })
你甚至可以为函数的最后一个参数lambdas做一个通常的语法糖(尽管这有点疯狂):
val a = A { println("this is the lambda") }