如何创建一个将函数作为构造函数参数的类。然后,在稍后的类(class)中使用这个函数。
最佳答案
您可以像使用任何其他类型一样拥有具有函数类型的属性:
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") })
您甚至可以为作为函数的最后一个参数的 lambda 做通常的语法糖(虽然这有点疯狂):
val a = A { println("this is the lambda") }
关于android - 在 Kotlin 中传递和使用函数作为构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44912803/