在Scala中,我可以创建一个case class,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))
我可以继续使用它,但是它的解释是什么?