val array = Array((for(i <- 0 to 10) yield scala.util.Random.nextInt): _*)
scala.util.Sorting.quickSort(array)
Mảng "mặc định" của Scala là một cấu trúc dữ liệu có thể thay đổi, rất gần với Mảng của Java. Nói chung, điều đó có nghĩa là một "mảng" không phải là Scala-ish, ngay cả khi cấu trúc dữ liệu có thể thay đổi được. Tuy nhiên, nó phục vụ một mục đích. Nếu mảng là kiểu dữ liệu phù hợp với nhu cầu của bạn, thì đó là cách bạn sắp xếp nó. Nhân tiện, có các phương pháp sắp xếp khác về Sắp xếp đối tượng.
Tôi nghĩ rằng tôi vừa nhận ra câu hỏi của bạn là gì ... bạn không cần phải truyền bất kỳ tham số ngầm nào (suy cho cùng thì nó cũng ngầm hiểu). Tham số đó tồn tại để nói rằng phải có một số cách để chuyển loại K thành một [K] có thứ tự. Các định nghĩa này đã tồn tại cho các lớp của Scala, vì vậy bạn không cần chúng.
Đối với một lớp tùy ý, bạn có thể định nghĩa nó theo cách này:
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))
Bây giờ, nếu Người được Thứ tự bắt đầu, thì điều này sẽ không thành vấn đề:
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))