Ruby中没有增量运算符(++)? [英] No increment operator (++) in Ruby?
问题描述
Possible Duplicate:
Why doesn't Ruby support i++ or i— for fixnum?
为什么Ruby中没有增量运算符?
Why is there no increment operator in Ruby?
例如
i++
++i
++
运算符是否还用于其他用途?有真实原因吗?
Is the ++
operator used for something else? Is there a real reason for this?
推荐答案
Ruby没有前/后递增/递减运算符.例如,
x++
或x--
将无法解析.更重要的是,++x
或--x
将什么都不做!实际上,它们表现为多个一元前缀运算符:-x == ---x == -----x == ......
要增加数字,只需编写x += 1
.
Ruby has no pre/post increment/decrement operator. For instance,
x++
orx--
will fail to parse. More importantly,++x
or--x
will do nothing! In fact, they behave as multiple unary prefix operators:-x == ---x == -----x == ......
To increment a number, simply writex += 1
.
来自"Ruby新手应该知道的事情" "((存档,
Taken from "Things That Newcomers to Ruby Should Know " (archive, mirror)
这比以往任何时候都更好.
That explains it better than I ever could.
and the reason from the language author himself (source):
- ++和-在Ruby中不是保留的运算符. C的递增/递减运算符实际上是隐藏的赋值.它们影响变量,而不影响对象.您无法通过方法完成分配. Ruby改用+ =/-=运算符.
- 自身不能成为分配目标.此外,更改整数1的值可能会在整个程序中引起严重的混乱.
- ++ and -- are NOT reserved operator in Ruby.
- C's increment/decrement operators are in fact hidden assignment. They affect variables, not objects. You cannot accomplish assignment via method. Ruby uses +=/-= operator instead.
- self cannot be a target of assignment. In addition, altering the value of integer 1 might cause severe confusion throughout the program.
这篇关于Ruby中没有增量运算符(++)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!