Назад к вопросам
JuniorТеорияЧасто
Что выведет программа (строки через пробел)?
fun <T> firstOr(items: List<T>, fallback: T): T {
return if (items.isEmpty()) fallback else items[0]
}
fun main() {
println(firstOr(listOf("x", "y"), "none"))
println(firstOr(emptyList<Int>(), 0))
}x 0
- Ждать ошибки компиляции из-за разных типов:
Tотносится к одному вызову, поэтому функция работает сначала соString, а затем сInt. - Считать, что
Tнужно писать при каждом вызове: Kotlin выводит его из аргументов, так же какlistOfсам определяет тип элементов.
- Что выведет
firstOr(emptyList<String>(), "none")? - Почему
List<String>— тоже пример обобщённого типа?