Чтобы иметь возможность создать универсальную функцию, компилятор должен знать, что вы хотите работать с разными типами.Kotlin - это (как Java или C #) язык со строгой типизацией.так что просто передача разных типов в функцию приведет к сумасшествию компилятора.
Чтобы сообщить компилятору, что функция должна принимать несколько типов, необходимо добавить «параметр типа»
<T>
после fun
находится определение указанного «параметра типа».
, которое затем используется в аргументе item
.
Теперь компилятор знает, что вы зададите тип item
когда вы делаете вызов singletonList(item: T)
Просто выполнение
fun singletonList(item: T) : List<T> {[...]}
сделает компилятор несчастным, поскольку он не знает T
.
(Пока вы некласс с именем T
)
Вы также можете иметь несколько «Типовых параметров», разделяя их запятыми:
fun <T, U> otherFunction(firstParam: T, secondParam: U): ReturnType