0

可能的重复:
Scala 运算符怪异

我对 Scala 很陌生,我读到在这种语言中,一切都是对象,很酷。此外,如果一个方法只有 1 个参数,那么我们可以省略 '.' 和双亲'()',没关系。

因此,如果我们采用以下 Scala 示例:3 + 2'3' 和 '2' 是两个IntObjects 并且 '+' 是一个方法,听起来不错。然后3 + 2只是 的简写3.+(2),这看起来很奇怪,但我还是明白了。

现在让我们比较以下代码块REPL

scala> 3 + 2
res0: Int = 5

scala> 3.+(2)
res1: Double = 5.0

这里发生了什么?为什么显式语法返回 aDouble而简写返回一个Int??

4

1 回答 1

7

3.是一个Double。词法分析器首先到达那里。试试(3).+(2)

于 2012-08-10T21:22:59.657 回答