読者です 読者をやめる 読者になる 読者になる

Ruby でインクリメントは可能か

結論から云うと、無理。Integer を継承したクラスを作っても、new メソッドが定義できない。

無理やりインクリメントとデクリメントしかないクラスを作ることはできるが、そんなことをしても意味がない。おとなしく i += 1 とか書こう。

下は無理やりクラス。

class Int
  def initialize(n=0)
    @num = n
  end
  attr_accessor :num
 
  def inc; @num += 1; end
  def dec; @num -= 1; end
end

if __FILE__ == $0
  n = Int.new(100)
  10.times {puts n.inc}
  n.num = 50
  5.times {puts n.dec}
end