まつもと ゆきひろです

In message "[ruby-list:18859] Re: initializer polymorphism?"
    on 99/11/23, Takeyuki Watadani <watadani / tubulin.cb.m.u-tokyo.ac.jp> writes:

|それで間に合うなら、私もそれでいいと思います。でも、例えば、
|
|class 三角形
|
|end
|
|a = 三角形.new(3辺の長さ)
|b = 三角形.new(2辺の長さと挟まれる角)
|c = 三角形.new(1辺の長さとその両側の角)
|d = 三角形.new(2つの角と面積) #ちょっと強引
|
|って風にやりたいことってありません?

たぶん、ベーシックなnewを定義して、それを使った生成メソッド
を複数用意するのが良いと思います。現状では引数の数(と型)しか
判別条件がありませんから、同じnewにこれだけ複数の役割を与え
るのは無理があると思います。

あるいはキーワード引数があれば、

  a = 三角形.new(辺1: 90,  辺2: 40, 辺3: 40)

のような指定ができるかもしれませんが、なんかこれも後で大変に
なりそう。
                                まつもと ゆきひろ /:|)