尋找一個有趣的Ruby觀察的解釋。考慮可比模塊中混合如下:在Ruby中包含與擴展和可比較模塊
class Class0
end
class Class1
include Comparable
end
class Class2
extend Comparable
end
如果我們尋找這是在Class2中主場迎戰Class0方法,
Class2.methods.each { |x| p x if not Class0.methods.include? x }
我們得到的只是:之間?
不過呢,如果我們做到這一點,尋找的Class1和Class0的實例之間的差別,
a = Class0.new
b = Class1.new
b.methods.each { |x| p x if not a.methods.include? x }
我們得到
[:>, :>=, :<, :<=, :between?]
我想知道爲什麼結果不同。我希望「擴展」能夠將相同的方法推入類中,使「包含」進入實例。 像「:>」這樣的東西與「:之間? ??
謝謝,@tbem,但不回答這個問題。問題是,爲什麼他們似乎做了不同的事情,一個到了班級,另一個到了一個實例?爲什麼他們應該添加不同的方法? – sploiber 2013-04-22 21:07:00
我用更好的解釋編輯了我的答案...... – tbem 2013-04-23 10:56:41
@sploiber你明白了嗎? – tbem 2013-04-24 11:27:04