Ruby中没有增量运算符(++)? [英] No increment operator (++) in Ruby?

查看:85
本文介绍了Ruby中没有增量运算符(++)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能重复:
为什么Ruby不支持i ++或i—用于fixnum?

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++ or x-- 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 write x += 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):

  1. ++和-在Ruby中不是保留的运算符.
  2. C的递增/递减运算符实际上是隐藏的赋值.它们影响变量,而不影响对象.您无法通过方法完成分配. Ruby改用+ =/-=运算符.
  3. 自身不能成为分配目标.此外,更改整数1的值可能会在整个程序中引起严重的混乱.
  1. ++ and -- are NOT reserved operator in Ruby.
  2. 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.
  3. self cannot be a target of assignment. In addition, altering the value of integer 1 might cause severe confusion throughout the program.

这篇关于Ruby中没有增量运算符(++)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆