白川@質問者です。

> あおきです。

リプライありがとうございます。

> このへんは RubyGarden にいくつか報告が出ていて、まつもとさんの
> コメントも既に付いてるので見てみてください。たとえば RCR38 とか。

まだ始めたばかりで、どのような情報ソースにどんな事が書いてあるのか
分かってなくてお手数をかけます。 ありがとうございます。

> そのコメントを簡単にまとめると
> 「レシーバのクラスを返すべきものも確かにあるが、そうでないものも
>   ある。たとえば binary method (+ - * など?)は常に String を返すべき」
> だそうです。

ですよね。 子供クラスの設計者の立場としても、
先祖がえりして欲しい時と、欲しくない時がある気がします。

> ただ、そもそも組み込みクラス (特に String と Array) は可能な限り
> 継承しないほうがいいでしょう。

このあたりの感覚がまだ全然分かんないんですよね。
なぜなのでしょう? 教えていただけますか?

> 最初の白川さんの例で言えば、新しい
> メソッドの追加だけなので String に直接足してしまってもよさそうです。

それも考えたのです。 (この辺りがなんか rubyってすごい
って思ったりもして、ruby本読んでてわくわくしました。)
ただ、例えば 親のメソッドをオーバーライトして、
親クラスをnewしたり、子クラスをnewしたりして
挙動を変えたい場合なんかに使えないなぁ などと
考えたりしていました。

> あるいはそもそも String のメソッドにすべきでないかもしれません。

やっぱり継承ではなく、ラッパークラスを作るべきなんでしょうか?

----------------------
白川貴久