2017-06-05 85 views
1

我写Scala中的一个DSL,我想实现方法的调用链如下:留出在方法调用中括号

def x(i:Int) = i 
x 1 equals 1 //doesn't compile 

我不知道为什么编译器是幸福的,如果我离开出第二个圆括号但不是第一个:

x(1) equals 1 //works fine 

有没有办法实现第一个版本?

回答

1

您可以调用没有圆括号的方法,但不能调用函数。

所以下面的工作:

scala> object Foo { 
    | def x(i:Int) = i 
    | } 
defined object Foo 

scala> Foo x 1 
res9: Int = 1 

scala> Foo x 1 equals 1 
res10: Boolean = true