Возможный дубликат:
странность оператора Scala
Я очень новичок в Scala, и я читал, что в этом языке все является объектом, круто. Кроме того, если метод имеет только 1 аргумент, мы можем опустить '.' и скобки '()', это нормально.
Итак, если мы возьмем следующий пример Scala: 3 + 2
, '3' и '2' - это два объекта Int
, а '+' - это метод, звучит нормально. Тогда 3 + 2
— это просто сокращение от 3.+(2)
, это выглядит очень странно, но я все равно понимаю.
Теперь сравним следующие блоки по коду на REPL
:
scala> 3 + 2
res0: Int = 5
scala> 3.+(2)
res1: Double = 5.0
Что тут происходит? Почему явный синтаксис возвращает Double
, а сокращенный возвращает Int
??