我是一名有经验的Java开发者,最近开始利用空闲时间学习Scala。我正在阅读来自scala-lang.org的Scala by Example PDF,并对第一个示例中的快速排序算法感到困惑。以下是代码:
object QuickSort extends App {
def sort(input: Array[Int]): Array[Int] = {
if(input.length <= 1) input
else
{
val pivot = input(input.length / 2)
Array.concat(
sort(input filter (pivot >)),
input filter (pivot ==),
sort(input filter (pivot <))
)
}
}
sort(Array(5, 4, 3, 2, 1)) foreach println
}
我的问题不在于语法或其他方面,而是我对filter函数的来源感到困惑。根据PDF文档,它来自Seq[T]类,而所有的数组都是Seq[T]的实例。当我阅读PDF时,一切都很好,我是一个非常满意和快乐的Scala新手开发者。但是,当我深入挖掘Array[T]的scaladoc和Array[T]的源代码时,我没有看到Array[T]类如何扩展或继承Seq[T] trait。我错过了什么?