加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala.Array怎么样?

发布时间:2020-12-16 19:21:00 所属栏目:安全 来源:网络整理
导读:我是一名强大的 Java开发人员,他最近开始尝试在我的空闲时间内学习Scala.我正在阅读来自scala-lang.org的 Scala by Example PDF文件,我很困惑第一个例子中的快速排序是如何工作的.这是代码: object QuickSort extends App { def sort(input: Array[Int]): A
我是一名强大的 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
}

我的问题不是语法或任何东西,但我对过滤函数的来源感到困惑.根据PDF,它说它来自Seq [T]类,并且所有数组都是Seq [T]的实例.这一切都很好,花花公子,在阅读PDF时,我很满意,并且是一个非常开心的新手Scala开发人员.但后来我深入挖掘并开始查看scaladoc for Array[T]以及Array [T]的源代码,我没有看到Array [T]类如何扩展或继承Seq [T]特性.我错过了什么?

解决方法

你错过了暗示. Stack Overflow上有一个 few questions约 implicits.在您正在阅读的PDF上,请参阅第15章,从第113页开始.在Scaladoc上,您将看到对象scala.Predef上的相关含义 – 只需查找将Array作为输入参数并返回其他内容的隐式方法.

PS:Yikes,它说Array是一个Seq!实际上,在Scala 2.8之前可能就是这种情况,但从那时起,Array就是一个纯粹而简单的Java数组.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读