rubyのrangeを理解する
771 ワード
class Num
attr_accessor :count
def initialize(num)
@count = num
end
public
def <=>(n)
@count<=>n.count
end
def succ
@count += 1
self
end
end
var1 = Num.new(1)
var2 = Num.new(10)
(var1..var2).each do |num|
puts num.count
end
最初はずっと理解できなかった
def <=>(n)
@count<=>n.count
end
n.contがどこから来たのか理解できない.nはNum類でなければ比較できないということはずっと分からなかった.
この方法を実現するのは比較のためである.
以下により確認する
var3=Num.new(3)
var4=Num.new(3)
puts var3<=>var4
0が得られます
var 3<=>3はエラーを示す.