Rubyでメソッドオーバーロードについて検索してたら、まつもとさんのこんなログを見つけた。 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/1401 まず、 引数の数についてはoptional引数とrest引数で対応して ください. def foo(a, b=23, *c) end 呼び出しは以下のようになります. foo() # error!! 引数の数が足りない foo(1) # a=1, b=23, c=[] foo(2,3) # a=2, b=3, c=[] foo(2,3,4) # a=2, b=3, c=[4] foo(2,3,4,5) # a=2, b=3, c=[4,5] そして、 メソッドの型については * Kernel#typeを使って分類する case obj.type when "Integer