在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") }