Ton*_*ale 8 ruby methods operator-overloading operators
在Ruby中,与许多其他OO编程语言一样,运算符是可重载的.但是,只有某些字符运算符可能会过载.
此列表可能不完整,但是,以下是一些无法重载的运算符:
!, not, &&, and, ||, or
Run Code Online (Sandbox Code Playgroud)
Joe*_*Dyk 25
"&&和||运算符不可重载,主要是因为它们提供的"短路"评估无法通过纯方法调用再现."
- Jim Weirich
Jor*_*ter 12
是的.操作员不会过载.只有方法.
有些运营商并非如此.他们是方法的糖.所以5 + 5
真的5.+(5)
,而且foo[bar] = baz
确实如此foo.[]=(bar, baz)
.
在Ruby 1.9中,!
运算符实际上也是一种方法,可以被覆盖.这只留下&&
和||
他们的低优先级对应物and
和or
.
还有一些其他"组合运算符"无法覆盖,例如a != b
实际上!(a == b)
并且a += b
实际上是a = a+b
.
归档时间: |
|
查看次数: |
4614 次 |
最近记录: |