在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