Ruby中没有增量运算符(++)?

时间:2010-09-15 12:22:07

标签: ruby operators

  

可能重复:
  Why doesn't Ruby support i++ or i— for fixnum?

为什么Ruby中没有增量运算符?

e.g。

i++
++i

++运算符是否用于其他内容?是否有真正的原因?

3 个答案:

答案 0 :(得分:228)

  

Ruby没有前/后递增/递减运算符。例如,x++x--将无法解析。更重要的是,++x--x将无所作为!实际上,它们表现为多个一元前缀运算符:-x == ---x == -----x == ......要增加数字,只需编写x += 1

取自“Ruby的新手应该知道的事情” “(archivemirror

这比我更好地解释了它。

编辑:以及语言作者本人(source)的原因:

  
      
  1. ++和 - 不是Ruby中的保留运算符。
  2.   
  3. C的递增/递减运算符实际上是隐藏赋值。它们影响变量,而不是对象。您无法通过方法完成任务。 Ruby使用+ = / - =运算符。
  4.   
  5. 自我不能成为任务的目标。此外,更改整数1的值可能会在整个程序中造成严重混淆。
  6.   

答案 1 :(得分:24)

来自posting by Matz

  

(1)++和 - 不保留   Ruby中的运算符。

     

(2)C的增量/减量   操作员实际上是隐藏的   分配。         它们影响变量,而不是对象。你无法完成         通过方法分配。 Ruby使用+ = / - =运算符。

     

(3)自我不能成为目标   分配。另外,改变         整数1的值可能会导致严重的混乱         该计划。

                      matz.

答案 2 :(得分:3)

我不认为符号是可用的,因为 - 不像PHP或C-Ruby中的所有东西都是对象。

当然可以在PHP中使用$var=0; $var++,但这是因为它是变量而不是对象。因此,$var = new stdClass(); $var++可能会抛出错误。

我不是Ruby或RoR程序员,所以我确信有人可以验证上述内容或纠正它,如果它不准确。