Mar*_*ace 0 scala arithmetic-expressions operators
可能重复:
Scala运算符奇怪
我对Scala很新,我读到用这种语言,一切都是对象,很酷.另外,如果一个方法只有一个参数,那么我们可以省略'.' 和parentesis'()',没关系.
所以,如果我们采用以下Scala示例:3 + 2'3'和'2'是两个Int对象而'+'是一个方法,听起来不错.然后3 + 2只是简写3.+(2),这看起来很奇怪,但我仍然得到它.
现在让我们比较下面的代码块REPL:
scala> 3 + 2
res0: Int = 5
scala> 3.+(2)
res1: Double = 5.0
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?为什么显式语法返回一段Double时间,速记返回Int?
3.是一个Double.词法分析者首先到达那里.试试(3).+(2).