val array = Array((for(i <- 0 to 10) yield scala.util.Random.nextInt): _*)
scala.util.Sorting.quickSort(array)
स्काला की "डिफ़ॉल्ट" सरणी एक उत्परिवर्तित डेटा संरचना है, जो जावा के ऐरे के बहुत करीब है। सामान्यतया, इसका मतलब है कि एक "सरणी" बहुत स्काला-ईश नहीं है, यहां तक कि परस्पर डेटा संरचनाएं भी जाती हैं। हालांकि यह एक उद्देश्य पूरा करता है। यदि सरणी आपकी आवश्यकता के लिए सही डेटा प्रकार है, तो आप इसे कैसे सॉर्ट करते हैं। ऑब्जेक्ट सॉर्टिंग पर अन्य छंटाई विधियां हैं, वैसे।
मुझे लगता है कि मुझे सिर्फ एहसास हुआ कि आपका प्रश्न क्या है ... आपको किसी भी अंतर्निहित पैरामीटर को पारित करने की आवश्यकता नहीं है (यह अंतर्निहित है, आखिरकार)। यह पैरामीटर यह कहने के लिए मौजूद है कि K को ऑर्डर किए गए [K] प्रकार में बदलने का कोई तरीका होना चाहिए। ये परिभाषा पहले से ही स्काला की कक्षाओं के लिए मौजूद हैं, इसलिए आपको उनकी आवश्यकता नहीं है।
एक मनमाने वर्ग के लिए आप इसे इस तरह परिभाषित कर सकते हैं:
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))
अब, अगर व्यक्ति को शुरू करने का आदेश दिया गया था, तो यह समस्या नहीं होगी:
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))