Ruby 不支持像variable++
这样的自增变量。我看到了这种行为:
2 ++ 4
给出 6
。事实上,两个变量之间的任意数量的 +
符号都被视为一个单独的 +
。 ruby 是如何做到的?由于 ruby 这样做,是否可以将其视为 ++
运算符不可用的原因?
最佳答案
这个:
2 ++ 4
解析为:
2 + (+4)
所以第二个 +
是一元加号。添加更多加号只会添加更多一元 +
运算符,因此:
2 ++++++ 4
被视为:
2 + (+(+(+(+(+(+4))))))
如果您在 Fixnum
中提供您的 +@
方法:
class Fixnum
def +@
puts 'unary +'
self
end
end
然后你甚至可以看到它发生:
> 2 ++ 4
unary +
=> 6
关于ruby - ruby 是如何做 + 运算符的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24523329/