В Swift
, если вы можете сделать следующее:
class MyExampleClass {
func myMethod(_ value: Int) {
}
}
let function = MyExampleClass.myMethod // Signature of (MyExampleClass) -> (Int) -> ()
let example = MyExampleClass()
function(example)(10) // Curried
Как мне добиться того же в Kotlin?
class MyExampleClass {
fun myMethod(value: Int) {
}
}
val function = MyExampleClass::myMethod // Signature of KFunction2<MyExampleClass, Int, Unit> -- WTF ?
val exampleClass = MyExampleClass()
function(exampleClass)(10) // Compiler error
function.invoke(exampleClass, 10) // works but ugly..
exampleClass::myMethod as (Int) -> Unit // WORKS!
MyExampleClass::myMethod as (MyExampleClass) -> (Int) -> Unit // UncheckedCast
Как я могу достичь той же функциональности, что и Swift?Чтобы быть более конкретным, я хотел бы иметь возможность передавать тип (MyExampleClass) -> (Int) -> Unit
вместо KFunction2<MyExampleClass, Int, Unit>