为什么Ruby中没有增量运算符?
e.g。
i++
++i
++
运算符是否用于其他内容?是否有真正的原因?
答案 0 :(得分:228)
Ruby没有前/后递增/递减运算符。例如,
x++
或x--
将无法解析。更重要的是,++x
或--x
将无所作为!实际上,它们表现为多个一元前缀运算符:-x == ---x == -----x == ......
要增加数字,只需编写x += 1
。
取自“Ruby的新手应该知道的事情” “(archive,mirror)
这比我更好地解释了它。
编辑:以及语言作者本人(source)的原因:
- ++和 - 不是Ruby中的保留运算符。
- C的递增/递减运算符实际上是隐藏赋值。它们影响变量,而不是对象。您无法通过方法完成任务。 Ruby使用+ = / - =运算符。
- 自我不能成为任务的目标。此外,更改整数1的值可能会在整个程序中造成严重混淆。
醇>
答案 1 :(得分:24)
(1)++和 - 不保留 Ruby中的运算符。
(2)C的增量/减量 操作员实际上是隐藏的 分配。 它们影响变量,而不是对象。你无法完成 通过方法分配。 Ruby使用+ = / - =运算符。
(3)自我不能成为目标 分配。另外,改变 整数1的值可能会导致严重的混乱 该计划。
matz.
答案 2 :(得分:3)
我不认为符号是可用的,因为 - 不像PHP或C-Ruby中的所有东西都是对象。
当然可以在PHP中使用$var=0; $var++
,但这是因为它是变量而不是对象。因此,$var = new stdClass(); $var++
可能会抛出错误。
我不是Ruby或RoR程序员,所以我确信有人可以验证上述内容或纠正它,如果它不准确。