什么 - @ operator在Ruby中做什么?

Nuc*_*ucc 3 ruby

我在Rails/ActiveSupport中找到了 - @运算符重定义:

https://github.com/rails/rails/blob/master/activesupport/lib/active_support/duration.rb#L33

你能告诉我这是什么意思吗?

Dar*_*tle 7

-@并且+@只是一元-和一元的方法名称+.如果你想重新定义它们,可以将它们作为方法等调用,这就是你需要引用它们以区别于二进制-+.


Dav*_*son 5

我认为它定义了当对象被否定时会发生什么,例如:

x = -y
Run Code Online (Sandbox Code Playgroud)

y 对象需要定义一个 -@ 运算符。