Оператор pre/post increment/decment (и --
) - довольно стандартный синтаксис языка программирования (как правило, для процедурных и объектно-ориентированных языков).Почему Ruby не поддерживает i ++ или i-- (операторы increment/decment)?
Почему Ruby не поддерживает их? Я понимаю, что вы могли бы сделать то же самое с +=
и -=
, но это просто странно произвольно, чтобы исключить что-то подобное, тем более, что оно настолько кратким и обычным.
Пример:
i = 0 #=> 0
i += 1 #=> 1
i #=> 1
i++ #=> expect 2, but as far as I can tell,
#=> irb ignores the second + and waits for a second number to add to i
Я понимаю Fixnum
неизменен, но если +=
может только новый создании экземпляра Fixnum
и установить его, почему бы не сделать то же самое для ++
?
Является ли согласованность в назначениях, содержащих знак =
, единственная причина этого, или я что-то упускаю?
Grep ruby исходный код для таких операторов. Если их нет, Мац их не любит. – Eimantas
Вы не можете сделать preincrement с помощью оператора '+ ='. В C я пытаюсь использовать '++'/'--' только внутри условных выражений, предпочитая более буквальный' + = '/' - = 'в базовом выражении. Наверное, потому что я изучил Python (долго после C, хотя ...) –
Не было ли такого вопроса для Python только вчера? – BoltClock