Обобщенная функция в Kotlin
Параметр типа у функции пишут в угловых скобках
сразу перед fun. Дальше это имя можно
ставить в типы аргументов и в тип результата -
как обычное имя типа, только оно задается
на месте объявления.
Функция, которая возвращает единственный элемент в списке из одного значения, подходит для любого типа элемента:
fun <T> asList(value: T): List<T> {
return listOf(value)
}
При вызове компилятор часто сам подставляет
конкретный тип вместо T по переданному
значению. Явно тип тоже можно указать в угловых
скобках у имени функции:
fun main() {
val tags = asList("io")
val codes = asList<Int>(404)
println(tags)
println(codes)
}
Для строки T становится String без
дополнительной записи. Для числа явная запись
asList<Int> нужна, когда из аргумента
тип неочевиден или его нужно зафиксировать
жестко.
Объявите функцию, которая принимает одно
значение и возвращает список из двух таких
же элементов подряд. Для строки "ab"
выведите полученный список.
Для числа 7 получите список из двух
элементов с явным указанием типа элемента
в угловых скобках у функции и выведите
результат.