Я пытаюсь написать служебную функцию, которая сортирует список по заданному свойству:
List<T> sortBy<T, U extends Comparable<U>>(List<T> items, U Function(T item) f) =>
items.toList()..sort((item1, item2) => f(item1).compareTo(f(item2)));
Я столкнулся с проблемой, когда свойство имеет тип int, например
sortBy<String, int>(['apple', 'ball', 'cow'], (word) => word.length);
Я получаю ошибку компиляции:
error: 'int' doesn't extend 'Comparable<int>'.
Почему int
не Comparable
? Есть ли другой способ написать sortBy
, чтобы он работал как на int
, так и на Comparable
?