前川です。

るびきちさん

ありがとうございます。


rubikitch / ruby-lang.org wrote on 2009/08/20 16:24:26:

> 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

変数分を確保し、データが設定された場合に、
追加の変数による処理を記述することで、対応出来るのは
わかるんですが・・・
言語の特徴の違いを認識し、今後の作業に活かさせてもらいます。
ありがとうございました。