Ash*_*arS 2 ruby increment operators post-increment
Ruby不支持递增变量variable++.我看到这种行为:
2 ++ 4
Run Code Online (Sandbox Code Playgroud)
给6.事实上,+两个变量之间的任何数字都被视为一个单一的+.ruby如何管理?而且由于红宝石这样做,它可以被视为++操作员不可用的原因吗?
这个:
2 ++ 4
Run Code Online (Sandbox Code Playgroud)
被解析为:
2 + (+4)
Run Code Online (Sandbox Code Playgroud)
所以第二个+是一元加.添加更多优点只会增加更多的一元运算+符:
2 ++++++ 4
Run Code Online (Sandbox Code Playgroud)
被视为:
2 + (+(+(+(+(+(+4))))))
Run Code Online (Sandbox Code Playgroud)
如果您提供以下+@方法Fixnum:
class Fixnum
def +@
puts 'unary +'
self
end
end
Run Code Online (Sandbox Code Playgroud)
然后你甚至可以看到它发生:
> 2 ++ 4
unary +
=> 6
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |