在 Scala 中,我可以创建一个案例类,case class Foo(x:Int)
然后将其放入一个列表中,如下所示:
List(Foo(42))
现在,这里没有什么奇怪的。以下对我来说很奇怪。运算符::
是列表中的一个函数,对吧?对于 Scala 中具有一个参数的任何函数,我可以使用中缀表示法来调用它。一个例子是对象上的1 + 2
函数。我刚刚定义的类没有操作符,那么下面怎么可能呢?(+)
Int
Foo
::
Foo(40) :: List(Foo(2))
在 Scala 2.8 RC1 中,我从交互式提示中得到以下输出:
scala> case class Foo(x:Int)
defined class Foo
scala> Foo(40) :: List(Foo(2))
res2: List[Foo] = List(Foo(40), Foo(2))
我可以继续使用它,但解释是什么?