在方法调用中省略括号

时间:2017-06-05 11:26:14

标签: scala

我正在Scala中编写DSL,我希望通过以下方式实现一系列方法调用:

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

如果我省略第二个括号而不是第一个括号,我不确定为什么编译器会很高兴:

x(1) equals 1 //works fine

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

1 个答案:

答案 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