ruby - Ruby 中的一元加运算符有什么意义?

标签 ruby language-design unary-operator

除了与一元减号形成良好的对称性之外,为什么要在 Numeric 类上定义一元加号运算符?它是否有一些实用值(value),除了引起混淆允许编写类似 ++i 的东西(与大多数非 Rubyist 认为的不同,它不会增加 i) .

我可以想到在自定义类上定义一元加号的场景可能很有用(比如说,如果您正在创建一些性感的 DSL),所以能够定义它是可以的,但为什么它已经在 Ruby numbers 上定义了?

最佳答案

也许这只是一个一致性问题,既与其他编程语言一致,又反射(reflect)一元减号。

The Ruby Programming Language 中找到对此的支持(由设计 Ruby 的 Yukihiro Matsumoto 撰写):

The unary plus is allowed, but it has no effect on numeric operands—it simply returns the value of its operand. It is provided for symmetry with unary minus, and can, of course, be redefined.

关于ruby - Ruby 中的一元加运算符有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5680587/

相关文章:

ruby-on-rails - 带有 turbolinks 的 Rails link_to 方法禁用格式化

ruby - 在不捕获 STDOUT 或 STDERR 的情况下访问子进程的 STDIN

c - 是否有理由在 C 代码中使用 *& 或 &*?

javascript - 为什么这个一元函数在另一个 javascript 函数中?

ruby-on-rails - Cloud9 警告我可以忽略吗?

javascript - Rails 嵌套表单 - 编辑操作和 edit.html.erb 不会显示表单或相关帖子内容

objective-c - Objective C 中的消息与 C# 和 Java 中的简单方法调用相比有何不同?

php - php函数默认返回什么?

C#:ObservableCollection - 为什么没有通用 "CollectionChanged"事件?

c - 一元++优先顺序