我必须创建 class NumberSet
,它是不同类型数字的容器,只能包含其中不存在的数字。
class NumberSet
include Enumerable
def initialize
@arr=[]
end
def each (&block)
@arr.each do |member|
block.call (member)
end
end
def << number
@arr<<number if @arr.include?(number) == false
end
end
此代码截断有理数。例如,(22/7)
不应该等于(3/1)
。
mine=NumberSet.new
mine<<Rational(22/7)
# => [(3/1)]
mine<<3.0
# => nil
我怎样才能解决这个问题?