Когда я вызываю + on 2, я возвращаю Int, но когда это делается с использованием явного вызова метода, я получаю Double.
scala> 2+2
res1: Int = 4
scala> 2.+(2)
res2: Double = 4.0
Похоже, что + () вызывается для неявного преобразования Int в Double.
scala> 2.+
<console>:16: error: ambiguous reference to overloaded definition,
both method + in class Double of type (x: Char)Double
and method + in class Double of type (x: Short)Double
match expected type ?
2.+
^
Почему это так?