2017-06-05 31 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