在Ruby中,似乎有很多要挾的()的幫助下,可以通過在Ruby中,coerce()方法是否知道需要幫助強制的操作符?
def coerce(something)
[self, something]
end
那就是,當需要
3 + rational
,Fixnum對象3
做不知道如何處理增加一個理性的,所以它要求幫助的Rational#要挾通過調用rational.coerce(3),這種要挾實例方法會告訴來電者:
# I know how to handle rational + something, so I will return you the following:
[self, something]
# so that now you can invoke + on me, and I will deal with Fixnum to get an answer
那麼,如果最OPE老師可以使用這種方法,但不是當它是(a - b)!=(b - a)的情況?可以強迫()知道它是哪個運算符,並且僅僅處理這些特殊情況,而僅僅使用簡單的[self,something]來處理所有其他情況,其中(a op b)==(b op a)? (op是運營商)。
爲什麼要問上'coerce' _three_問題,當我與你提供在你的第一個答案? – 2010-05-11 05:53:25
我從以前的帖子中獲得了很多見解。這次我想看看是否可以通過交換操作數來讓新類處理所有新操作,看到操作符是否正確,並且只處理交換不正常的情況。 – 2010-05-11 09:16:02