Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpGnInr 98 of 299 menu
◀ ▶

Введение в обобщения в Kotlin

Списки строк и списки чисел уже описывают как List<String> и List<Int>. Отдельная задача - написать одну и ту же логику для разных типов элемента без копирования кода под каждый вариант.

Пусть нужен первый элемент списка или пустое значение, если список пуст. Для строк и для чисел алгоритм совпадает, меняется только тип элемента. Здесь помогает параметр типа - имя, которое подставляется вместо конкретного типа:

fun <T> firstOf(list: List<T>): T? { return if (list.isEmpty()) null else list[0] }

Буква T в угловых скобках перед именем функции объявляет параметр типа. В сигнатуре List<T> и результат T? согласованы с этим именем - компилятор связывает их при вызове:

fun main() { val words = listOf("api", "log") val nums = listOf(10, 20, 30) println(firstOf(words)) println(firstOf(nums)) }

Для списка строк функция возвращает строку или null, для списка чисел - число или null. Одно объявление покрывает оба случая, потому что T каждый раз выводится из аргумента.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить