Я искал источник для Sorting.scala и интересовался определением последнего метода в исходном фрагменте ниже.scala параметризованный тип с ограничением, появляющимся после двоеточия?
object Sorting {
/** Quickly sort an array of Doubles. */
def quickSort(a: Array[Double]) { sort1(a, 0, a.length) }
/** Quickly sort an array of items with an implicit Ordering. */
def quickSort[K: Ordering](a: Array[K]) { sort1(a, 0, a.length) } //<<??
Тип параметра «K», кажется, ограничивается быть подтипом (возможно?) Из «Заказ» ... Но я никогда не видел этот синтаксис.
Я бы своего рода (не каламбур) понять, если методы были определены что-то вроде:
def quickSort[K <% Ordering[K]](a: Array[K]) { sort1(a, 0, a.length) }
Но я озадачен смыслом ограничения, которое имеет только двоеточие. Любые ссылки на соответствующую документацию или другие (объясненные) примеры были бы замечательными.
Заранее спасибо ...
Заканчивать [Что Scala контекст и просмотреть оценки?] (Https://stackoverflow.com/questions/4465948/what-are-scala-context-and-view-bounds). Границы просмотра устарели. –