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

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

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

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

T maxOf<T extends Comparable<T>>(T a, T b) { return a.compareTo(b) >= 0 ? a : b; } print(maxOf(3, 7)); print(maxOf("beta", "alpha"));

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

bool isOrdered<T extends Comparable<T>>(List<T> values) { for (var index = 1; index < values.length; index++) { if (values[index - 1].compareTo(values[index]) > 0) { return false; } } return true; } print(isOrdered([1, 2, 3])); print(isOrdered(["a", "c", "b"]));

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

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

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