我正在Scala中编写DSL,我希望通过以下方式实现一系列方法调用:
def x(i:Int) = i
x 1 equals 1 //doesn't compile
如果我省略第二个括号而不是第一个括号,我不确定为什么编译器会很高兴:
x(1) equals 1 //works fine
有没有办法实现第一个版本?
答案 0 :(得分: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