为什么在Scala中无法使用Rounded括号调用某些方法

时间:2016-04-30 20:34:17

标签: scala

这是一个例子。我想知道为什么我无法使用圆角括号(())来调用toFloat方法

此作品toFloat

scala> val no = "8.5".toFloat
no: Float = 8.5

无法正常工作toFloat()

scala> val no = "8.5".toFloat()
<console>:27: error: Float does not take parameters
         val no = "8.5".toFloat()
                               ^

1 个答案:

答案 0 :(得分:4)

方法StringLike.toFloat定义为:

def toFloat: Float = java.lang.Float.parseFloat(toString)

文档说明括号中的以下内容:

  

括号

     

与Ruby不同,Scala重视是否使用括号声明方法(仅适用于arity-0的方法)。

     

例如:

     

def foo1() = ...

     

def foo2 = ...

     

这些是编译时的不同方法。 虽然可以使用或不使用括号调用foo1,但可能不会使用括号调用foo2。

这表明如果声明没有括号的方法,则在调用期间可能不会添加它们。