Ruby中没有增量运算符(++)?
可能重复:
为什么不支持i ++或i- fixnum?
为什么Ruby中没有增量运算符?
例如
i++ ++i
++
运算符是用来做其他事情的吗? 这有没有真正的原因?
Ruby没有前/后增加/减less运算符。 例如,
x++
或x--
将无法parsing。 更重要的是,++x
或--x
将无能为力! 实际上,它们performance为多个一元前缀运算符:-x == ---x == -----x == ......
要增加数字,只需写入x += 1
。
从新手到ruby应该知道的事情(链接更新使用caching页面,原始链接被破坏)
这比我所能解释的更好。
编辑:和语言作者自己的原因( 来源 ):
- ++和 – 在Ruby中不是保留的运算符。
- C的增加/减less操作符实际上是隐藏的赋值。 它们影响variables,而不是对象。 你不能通过方法完成任务。 Ruby使用+ = / – =运算符。
- 自我不能成为任务的目标。 此外,修改整数1的值可能会在整个程序中造成严重的混淆。
从Matz的发帖 :
(1)++和 – 在Ruby中不是保留的运算符。
(2)C的增/减操作符实际上是隐藏的赋值。 它们影响variables,而不是对象。 你不能通过方法完成任务。 Ruby使用+ = / – =运算符。
(3)自我不能成为任务的目标。 此外,修改整数1的值可能会在整个程序中造成严重的混淆。
matz.
我不认为符号是可用的,因为 – 不像说PHP或C – Ruby中的所有东西都是一个对象。
当然你可以使用$var=0; $var++
PHP中的$var=0; $var++
,但这是因为它是一个variables,而不是一个对象。 因此, $var = new stdClass(); $var++
$var = new stdClass(); $var++
可能会抛出一个错误。
我不是Ruby或RoR程序员,所以我敢肯定有人可以validation上述内容,如果不正确,可以纠正。