Eugen Martynov
10/23/2019, 7:45 AMwbertan
10/23/2019, 7:50 AMinterface Merger<T1 : Any, T2 : Any, R : Any> : (T1, T2) -> R
class B : Merger<String, String, Int> {
override fun invoke(asas1: String, asas2: String): Int = TODO()
}
fun asas() {
val b = B()
val result: Int = b("asas1", "asas2")
}
interface Merger1<T1 : Any, T2 : Any, R : Any> {
val merge: (T1, T2) -> R
}
class A : Merger1<String, String, Int> {
override val merge: (asas1: String, asas2: String) -> Int
get() = TODO()
}
fun asasA() {
val a = A()
val result: Int = a.merge("asas1", "asas2")
}
Eugen Martynov
10/23/2019, 8:32 AMkingsley
10/23/2019, 2:29 PMtypealias Merger<T1, T2, R> = (in1: T1, in2: T2) -> R