Khi tôi gọi + on 2, tôi nhận được một Int, nhưng khi nó được thực hiện bằng cách sử dụng phương thức tường minh gọi tôi nhận được Double thay thế.Scala operator oddity
scala> 2+2
res1: Int = 4
scala> 2.+(2)
res2: Double = 4.0
Dường như. +() Được gọi trên Int được chuyển đổi thành Int thành 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.+
^
Tại sao vậy?
Java tương thích: -/ – soc