Почему нет i ++ в Scala? - PullRequest
       3

Почему нет i ++ в Scala?

43 голосов
/ 23 декабря 2010

Мне просто интересно, почему нет i++ для увеличения числа. Как я знаю, языки вроде Ruby или Python не поддерживают его, потому что они динамически типизированы. Таким образом, очевидно, что мы не можем написать код, подобный i++, потому что, возможно, i - это строка или что-то еще. Но Scala статически типизирован - компилятор может сделать вывод, что если это допустимо или нет, ставить ++ за переменной.

Итак, почему i++ не существует в Scala?

Ответы [ 11 ]

0 голосов
/ 23 декабря 2010

Вы можете смоделировать это, хотя. В качестве тривиального примера:

scala> case class IncInt(var self: Int = 0) { def ++ { self += 1 } }
defined class IncInt

scala> val i = IncInt()
i: IncInt = IncInt(0)

scala> i++

scala> i++

scala> i
res28: IncInt = IncInt(2)

Добавьте некоторые неявные преобразования, и все готово. Тем не менее, этот вид изменяет вопрос: почему нет изменяемого RichInt с такой функциональностью?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...