在"Scala编程"一书的第22章中,::类(cons)被定义为
final case class ::[T](hd: T, tl: List[T]) extends List[T] {
//...
}
Run Code Online (Sandbox Code Playgroud)
::类中的方法List定义如下:
def ::[U >: T](x: U): List[U] = new scala.::(x, this)
Run Code Online (Sandbox Code Playgroud)
为什么new需要创建一个实例?这纯粹是为了消除歧义吗?finalcaseclass ::