當我打電話Array#-
它似乎並不呼籲任何字符串比較方法我比較:Array# - (減算子)如何比較元素的相等性?
class String
def <=>(v)
puts "#{self} <=> #{v}"
super(v)
end
def ==(v)
puts "#{self} == #{v}"
super(v)
end
def =~(v)
puts "#{self} =~ #{v}"
super(v)
end
def ===(v)
puts "#{self} == #{v}"
super(v)
end
def eql?(v)
puts "#{self}.eql? #{v}"
super(v)
end
def equal?(v)
puts "#{self}.equal? #{v}"
super(v)
end
def hash()
puts "#{self}.hash"
super
end
end
p %w{one two three} - %w{two}
它只是返回:
["one", "three"]
那麼,什麼是Array#-
在做什麼?
另外,我正在使用Ruby 1.9.2p290。在1.8.7中似乎會導致無限循環。
嘗試用'irb'(!)調用它。讀完你的類定義之後,它會進入無限循環。 –
@JoshLee你是什麼意思它進入一個無限循環?當我執行該腳本退出而沒有任何問題 – Zequez
它打印出 n ==可Ñ n ==可米 米==米 n ==可Ñ 米==Ñ 中號==Ñ 升== 一遍又一遍...... –