白川@質問者です。 > あおきです。 リプライありがとうございます。 > このへんは RubyGarden にいくつか報告が出ていて、まつもとさんの > コメントも既に付いてるので見てみてください。たとえば RCR38 とか。 まだ始めたばかりで、どのような情報ソースにどんな事が書いてあるのか 分かってなくてお手数をかけます。 ありがとうございます。 > そのコメントを簡単にまとめると > 「レシーバのクラスを返すべきものも確かにあるが、そうでないものも > ある。たとえば binary method (+ - * など?)は常に String を返すべき」 > だそうです。 ですよね。 子供クラスの設計者の立場としても、 先祖がえりして欲しい時と、欲しくない時がある気がします。 > ただ、そもそも組み込みクラス (特に String と Array) は可能な限り > 継承しないほうがいいでしょう。 このあたりの感覚がまだ全然分かんないんですよね。 なぜなのでしょう? 教えていただけますか? > 最初の白川さんの例で言えば、新しい > メソッドの追加だけなので String に直接足してしまってもよさそうです。 それも考えたのです。 (この辺りがなんか rubyってすごい って思ったりもして、ruby本読んでてわくわくしました。) ただ、例えば 親のメソッドをオーバーライトして、 親クラスをnewしたり、子クラスをnewしたりして 挙動を変えたい場合なんかに使えないなぁ などと 考えたりしていました。 > あるいはそもそも String のメソッドにすべきでないかもしれません。 やっぱり継承ではなく、ラッパークラスを作るべきなんでしょうか? ---------------------- 白川貴久