回调与多个参数构造器
问题描述:
什么
我试过到目前为止回调与单一的参数,它的工作原理:回调与多个参数构造器
class SomeClass (something:Int = 3, val callback: (Int) -> Unit) {
fun doSomething() {
callback(11)
}
}
class AnotherClass {
val something = SomeClass({onSomething(it)})
protected fun onSomething(num: Int) {
// ...
}
}
但如何与多个参数来实现它,如:
class SomeClass (something:Int = 3, val callback: (Int, String) -> Unit) {
fun doSomething() {
callback(11, "Yeah")
}
}
class AnotherClass {
val something = SomeClass(/* ...... what goes here???? */)
protected fun onSomething(num: Int, str: String) {
// ...
}
}
答
刚使用lambda expression syntax有明确参数:
val something = SomeClass { num, str -> onSomething(num, str) }
时,顺便林bda作为最后一个参数,可以省略括号。
此外,您还可以使用bound function reference如果预期和实际功能的签名完全匹配:
val something = SomeClass(this::onSomething)