1
我寫Scala中的一個DSL,我想實現方法的調用鏈如下:留出在方法調用中括號
def x(i:Int) = i
x 1 equals 1 //doesn't compile
我不知道爲什麼編譯器是幸福的,如果我離開出第二個圓括號但不是第一個:
x(1) equals 1 //works fine
有沒有辦法實現第一個版本?
我寫Scala中的一個DSL,我想實現方法的調用鏈如下:留出在方法調用中括號
def x(i:Int) = i
x 1 equals 1 //doesn't compile
我不知道爲什麼編譯器是幸福的,如果我離開出第二個圓括號但不是第一個:
x(1) equals 1 //works fine
有沒有辦法實現第一個版本?
您可以調用沒有圓括號的方法,但不能調用函數。
所以下面的工作:
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