给定函数foo:
fun foo(m: String, bar: (m: String) -> Unit) {
bar(m)
}
我们可以:
foo("a message", { println("this is a message: $it") } )
//or
foo("a message") { println("this is a message: $it") }
现在,假设我们有以下函数:
fun buz(m: String) {
println("another message: $m")
}
是否有一种方法,我可以通过“buz”作为参数“foo”?
喜欢的东西:
foo("a message", buz)
Jason Minard的回答很好。这也可以使用lambda来实现。
fun foo(m: String, bar: (m: String) -> Unit) {
bar(m)
}
val buz = { m: String ->
println("another message: $m")
}
可以用foo("a message", buz)调用。
您还可以使用类型别名使其更加DRY。
typealias qux = (m: String) -> Unit
fun foo(m: String, bar: qux) {
bar(m)
}
val buz: qux = { m ->
println("another message: $m")
}
Jason Minard的回答很好。这也可以使用lambda来实现。
fun foo(m: String, bar: (m: String) -> Unit) {
bar(m)
}
val buz = { m: String ->
println("another message: $m")
}
可以用foo("a message", buz)调用。
您还可以使用类型别名使其更加DRY。
typealias qux = (m: String) -> Unit
fun foo(m: String, bar: qux) {
bar(m)
}
val buz: qux = { m ->
println("another message: $m")
}