我在Rails / ActiveSupport中找到了 - @运算符重定义:
https://github.com/rails/rails/blob/master/activesupport/lib/active_support/duration.rb#L33
你能告诉我这是什么意思吗?
答案 0 :(得分:7)
-@
和+@
只是一元-
和+
的方法名称。如果您想重新定义它们,请将它们作为方法等调用,这就是您需要引用它们以区别于二进制-
和+
的方式。
答案 1 :(得分:4)
我认为它定义了对象被否定时会发生什么,例如:
x = -y
y对象需要定义一个 - @运算符。
答案 2 :(得分:0)
它只返回一个否定的持续时间对象,其中值被否定,部分的所有值也被否定。