val array = Array((for(i <- 0 to 10) yield scala.util.Random.nextInt): _*)
scala.util.Sorting.quickSort(array)
Масив "за замовчуванням" Scala - це змінна структура даних, дуже близька до масиву Java. Взагалі кажучи, це означає, що "масив" не дуже масштабований, навіть якщо змінюються структури даних. Однак це має мету. Якщо масив є правильним типом даних для ваших потреб, то саме таким чином ви його сортуєте. До речі, існують й інші методи сортування об’єкту Сортування.
Здається, я щойно зрозумів, у чому ваше питання ... вам не потрібно передавати жоден неявний параметр (зрештою, це неявний). Цей параметр існує, щоб сказати, що має бути певний спосіб перетворити тип K в упорядкований [K]. Ці визначення вже існують для класів Scala, тому вони вам не потрібні.
Для довільного класу ви можете визначити це таким чином:
scala> case class Person(name: String)
defined class Person
scala> val array = Array(Person("John"), Person("Mike"), Person("Abe"))
array: Array[Person] = Array(Person(John), Person(Mike), Person(Abe))
scala> scala.util.Sorting.quickSort(array)
<console>:11: error: no implicit argument matching parameter type (Person) => Ordered[Person] was found.
scala.util.Sorting.quickSort(array)
^
scala> class OrderedPerson(val person: Person) extends Ordered[Person] {
| def compare(that: Person) = person.name.compare(that.name)
| }
defined class OrderedPerson
scala> implicit def personToOrdered(p: Person) = new OrderedPerson(p)
personToOrdered: (p: Person)OrderedPerson
scala> scala.util.Sorting.quickSort(array)
scala> array
res8: Array[Person] = Array(Person(Abe), Person(John), Person(Mike))
Тепер, якби для початку було наказано Person, це не склало б проблем:
scala> case class Person(name: String) extends Ordered[Person] {
| def compare(that: Person) = name.compare(that.name)
| }
defined class Person
scala> val array = Array(Person("John"), Person("Mike"), Person("Abe"))
array: Array[Person] = Array(Person(John), Person(Mike), Person(Abe))
scala> scala.util.Sorting.quickSort(array)
scala> array
res10: Array[Person] = Array(Person(Abe), Person(John), Person(Mike))