Я создаю несколько параметризованных классов C [T] и хочу сделать некоторые требования к характеристикам типа T, чтобы иметь возможность быть параметром моего класса. Было бы просто, если бы я просто хотел сказать, что T унаследован от черт или классов (как мы делаем с упорядочением). Но я хочу, чтобы он также реализовал некоторые функции.
Например, я видел, что многие предопределенные типы реализуют MinValue и MaxValue, я хотел бы, чтобы мой тип T также реализовал их. Я получил несколько советов, чтобы просто определить неявную функцию. Но мне бы не хотелось, чтобы все пользователи были обязаны реализовать эту функцию для них, когда она уже реализована. Я мог бы реализовать их и в своем коде, но, похоже, это плохое быстрое решение.
Например, при определении куч, я хотел бы позволить пользователям создавать пустую кучу. В этих случаях я хочу инициализировать значение с минимальным значением, которое может иметь тип T. Очевидно, этот код не работает.
class Heap[T](val value:T,val heaps:List[Heap[T]]){
def this()=this(T.MinValue,List())
}
Я также хотел бы получить несколько советов по поводу действительно хороших онлайн-ссылок на Scala 2.8.