From: "たけ(tk)" Date: 2000-11-09T20:54:31+09:00 Subject: [ruby-dev:11455] Re: Ruby I18N たけ(tk)です。 まあ、僕が反論してのしょうがないのですが、まつもとさんの説得阻止という 意味で・・。  最近、転向しまして、「文字とは個数が1の文字列(一文字文字列)である」 という立場をとることにしたんです。 str[n] ではなくて str[n,1] で一文字 文字列を取り出して「文字」として扱えば十分な気がするのです。どうなんでしょ う?。何か不都合ありますか?。 》* 文字コードが隠蔽される。 について、もし str[n] で文字コードが出てしまうのがうれしくないのであれ ば、 str[n] で一文字文字列が出るようにすればよい。  −−  不都合として唯一気にかかっていたのは次の点なのですが・・、 》たとえば、mail/news の引用を考えます。この場合、届いたメッセージと自分 》で書いた部分をまとめることになります。この場合、まとめた結果を表現可能 》な MIME charset が存在する保証は存在しないわけです・・ 考えてみれば、このような状態(マルチ文字コード系の文字列)では全体として の文字列を扱うというのは困難になる。これを、今までの Ruby で気軽に扱えた ような文字列にするためには大変なオーバーヘッドを覚悟しなければならなくなる。  しかも、このようなマルチ文字コード系文字列を扱うために「文字クラス」が 不可欠というわけではない。「一文字文字列の配列」でマルチ文字コード系文字 列をとりあえず作っておき、それの扱いが普通の文字列と同じように作っていく ということも可能。  * 「一文字文字列」のサイズが気になるのであれば、「文字クラス」と「文 字列クラス」とに共通の上位クラスを作って、「文字クラス」は単一の文字コー ドを持つ、「文字列クラス」は文字コードの配列を持つ、というようにすればい いのかな?。  −−  その他の点について、 》* 文字の取り違えが起きない。 》* polymorphism を実現できる。 》 他の例をあげるとすれば、文字自身にそれを表現可能な MIME charset を尋 》 ねる、とか。 》* 付加的な情報を保持できる。 》* 文字列の種類と文字コードの対を Array などを使ってアプリケーションが 》 自力で管理するよりはずっとましな性能が得られる気がする。 》結局、文字をオブジェクトにする利点は OOP の利点そのものです。 これらの各点については、「一文字文字列」でよければすでに達成されているは ずです。 たけ(tk)=熊谷秀武