我正在学习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
答案 0 :(得分:1)
new ClassName(constructorArguments)
创建类ClassName
的新实例,将constructorArguments
作为构造函数参数传递。
在您的示例中,::
是类名,head
和this
是构造函数参数。
(有关构造函数的更多信息,请参阅https://docs.scala-lang.org/tour/classes.html。)