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はエラーを示す.