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

Верхняя граница в Kotlin

Параметр типа T сам по себе не говорит, какие операции разрешены над значением. Верхняя граница записывается после двоеточия: T : Имя означает, что под T допустим только тип, который реализует этот интерфейс или наследует класс.

Функция максимума из двух значений опирается на сравнение через Comparable:

fun <T : Comparable<T>> maxOf(a: T, b: T): T { return if (a >= b) a else b } fun main() { println(maxOf(3, 7)) println(maxOf("beta", "alpha")) }

Внутри тела доступен метод compareTo и операторы сравнения для типа T, потому что граница гарантирует поддержку Comparable. Без двоеточия такой вызов компилятор бы отклонил:

fun <T : Comparable<T>> isOrdered(values: List<T>): Boolean { for (index in 1 until values.size) { if (values[index - 1] > values[index]) { return false } } return true } fun main() { println(isOrdered(listOf(1, 2, 3))) println(isOrdered(listOf("a", "c", "b"))) }

Объявите функцию, которая возвращает меньшее из двух значений с границей Comparable. Сравните 15 и 8 и выведите результат.

Сделайте функцию, которая проверяет, отсортирован ли список по возрастанию. Проверьте список "aa", "bb", "cc" и выведите ответ.

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