[ruby-dev:39919] Re: Time.now + str と #to_r

From: Yukihiro Matsumoto <matz@...>
Date: 2009-12-24 00:28:30 UTC
List: ruby-dev #39919
まつもと ゆきひろです

In message "Re: [ruby-dev:39915] Re: Time.now + str 	と #to_r"
    on Thu, 24 Dec 2009 09:06:06 +0900, Kenta Murata <[email protected]> writes:

|> その場合、convert_toとかcast_toとかのメソッドの実装の中で、ク
|> ラスごとに条件分岐するのであれば、新たに数クラスが増えた場合
|> に対応するのが難しくなるのではないでしょうか。実装としてダブ
|> ルディスパッチを使えば、結局はなんらかのメソッド名を考える必
|> 要があるのではないかと。
|
|自分が知らないクラスへの変換時にダブルディスパッチで呼び出すクラスメソッドを
|convert_from という名前に決めれば、この場合については対称的になって美しいと思います。

なんとなく理解できた気がしないので、もうちょっと説明してもら
えませんか。

仮にRationalという組み込みでないクラスがあったとして、

 r = 2.convert_to(Rational)

は具体的にはどんな処理をするのでしょう? ただし、Rationalは組
み込みではないので、2はRationalというクラスについて知らないこ
ととします。

In This Thread