Согласно этому ответу я могу передать функцию в качестве параметра
{ ссылка }
fun foo(m: String, bar: (m: String) -> Unit) {
bar(m)
}
// my function to pass into the other
fun buz(m: String) {
println("another message: $m")
}
// someone passing buz into foo
fun something() {
foo("hi", ::buz)
}
Итак, на самом деле есть два вопроса
- Если возможно, определить функцию
bar
как обнуляемую, чтобы иметь перегрузку для этого метода. - Как передать функцию не из текущего класса? например
foo("test", myOtherObj.myTestMethod())
?