Я новичок в Kotlin, и я пытаюсь понять псевдоним типа и функции.
У меня есть следующий пример:
interface EmptyInterface
typealias GenericCase<T> = T.(EmptyInterface) -> T
val myFunctionVariable: GenericCase<String> = {
_ -> "Hello world!"
}
Насколько я понимаю, я расширяю то, что когда-либо T
определяется функцией, которая принимает в качестве аргумента EmptyInterface
и возвращает T
.Так что myFunctionVariable
- это функция, которая должна вызываться с передачей EmptyInterface
Но следующий код не компилируется
class a: EmptyInterface
println("${myFunctionVariable(a())}")
Мне нужно передать String
в качестве первогопараметр:
class a: EmptyInterface
println("${myFunctionVariable("",a())}")
Зачем нужна строка в качестве первого параметра?T.(EmptyInterface) -> T
, в данном случае String.(EmptyInterface) -> String
, имеет только 1 параметр.Может ли кто-нибудь объяснить это?