From: "NAKAMURA, Hiroshi" Date: 2004-04-06T10:26:10+09:00 Subject: [ruby-dev:23334] Re: to_str再考 なひです。 > From: "Yukihiro Matsumoto" > Sent: Tuesday, April 06, 2004 12:46 AM > to_strについて改めて考えています。to_strはStringのduck type > を実現するためのhackだと考えるようになりましたので、Stringと > 類似のメソッド集合を持たないオブジェクトはto_strを定義するべ > きではないように思います(実害がない限り)。 > > そこで標準添付ライブラリを探してみたところ、to_strを定義して > いるのは3クラスありました。 > csv.rb: CSV::Cell#to_str > > これなんで定義されているんでしょう。不要ではないでしょうか。 > いや、きっと使うから定義したんだと思いますが。できれば削り > たいです。 追加したのは去年の12/12と比較的最近です。なのにあまりはっきり 理由を覚えていないということは、あまり考えてないということだと 思います。^^; Cellの位置付けとしては、「Null値を格納したCell同士が==でtrueに ならないString」ということで、基本的にはStringとして使えて欲し い、と思っています。従来は解析結果をいちいちaCell.dataとして 文字列を取り出していたんですが、めんどくさいのでもうちょっと スマートにしたかった、ような気がします。 改めて上記定義を元に考え直してみると、今は、 * CellをStringのsubclassにする。to_strは消す。 * CellにStringのmethodを定義しまくる/Stringにdelegateする。 のいずれかかな、と思ってます。前者はちょっと実装が気色悪く なりそうなんですが。。。 ご意見をいただいて、もう少し修正方法を考えようと思います。