From: "前川 映一" <eiichi_maekawa / mhi.co.jp>
Subject: [ruby-list:46303] rubyのメソッドの切り替えについて
Date: Thu, 20 Aug 2009 15:46:54 +0900

るびきちです。

> def test( a,b,c) #パターン1
>   〜処理〜
> end
> 
> def test( a,b,c,d ) #パターン2
>   〜処理〜
> end
> 
> cc = test( a,b,c )
> dd = test( a,b,c,d )
> 
> ee = cc + dd
> 
> とした場合、同じ名称でも引数が異なるため、
> 別々のメソッドとして、扱えるのでしょうか?

無理です。可変長引数や省略可能引数で代用しましょう。
同じ名前のメソッドである以上、なんらかの関連性があるはずです。


# このサンプルは恣意的なものです:-)
def test(a, b, c, d=nil)
  if d                          # 4引数の場合
    a+b+c+d
  else
    a*b*c
  end
end

cc = test(1, 2, 3)              # => 6
dd = test(1, 2, 3, 4)           # => 10
ee = cc + dd                    # => 16

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/
Twit: http://twitter.com/rubikitch/
『Ruby逆引きハンドブック』 http://d.hatena.ne.jp/rubikitch/20090525/rubybook