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