Kiedy wywołuję + 2, otrzymuję oddzwonienie, ale gdy zostanie ono wykonane przy użyciu jawnego wywołania metody, otrzymam Double zamiast tego.Osobliwość operatora Scala
scala> 2+2
res1: Int = 4
scala> 2.+(2)
res2: Double = 4.0
Wygląda na to, że +() jest wywoływane na niejawnym przekonwertowanym Int do 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.+
^
Dlaczego tak się dzieje?
zgodność Java: -/ – soc