cons" ::"是什么意思?运营商紧随" new"这段代码中的关键字?

时间:2018-02-10 15:47:46

标签: scala list functional-programming

我正在学习Scala并在教程中看到以下定义。 有3" ::"。我的理解是第一个" ::"是class List中的一种方法,第三种方法是::"是一个班级名称。

但是我无法理解第二个" ::"的意思。

sealed abstract class List {
  def ::(head: Int): List = new ::(head, this)
}
case object Nil extends List
case class ::(head: Int, tail: List) extends List

1 个答案:

答案 0 :(得分:1)

new ClassName(constructorArguments)创建类ClassName的新实例,将constructorArguments作为构造函数参数传递。

在您的示例中,::是类名,headthis是构造函数参数。

(有关构造函数的更多信息,请参阅https://docs.scala-lang.org/tour/classes.html。)