From: "たけ(tk)" Date: 2000-11-07T21:18:19+09:00 Subject: [ruby-dev:11407] Re: Ruby I18N たけ(tk)です。 Yasushi Shoji さん曰く: 》# dstの typeを知らないなら 》dst[2] = src.convert_to(dst.type)[2] 》 》じゃ、だめ?  もちろんありだと思います。ただ、これだと文字列全体を変換することになり ますね。それと、「src.convert_to(dst.type)」は次のものの省略記法でしょう ね。 def String.convert_to( st ) self.string_type.convert_str_to( self , st ) end  あっと、それと、せっかく考えた Char クラスの出番がなくなる・・。(汗)。 ただし、前の Char クラスは通常使うべきものではないと思っています。通常の 使用では Fixnum で十分。(すでに転向している)。名前も ConvertableChar クラスにしとけばよかった。  −− 》String#[]が「文字」を取り出す methodだと思ってしまうと、Rubyが知らないな 》にかを基本に codeを書いてしまうんじゃないでしょうか? 》 》文字列を扱うときに人間がなにげに操作してしまう「文字」の・・  れれ?。何気なく String#[] が「文字」を取り出すものとして使っていまし た。現状の Ruby では、そのバイト位置のバイトデータを Fixnum で返すだけで すね。  String.string_type があるとすると、「Rubyが知らないなにか」ではなくて、 文字列として扱うための方法を知っていることになる。よって、ちゃんとした 「文字」を取り出すものであってもかまいませんね。ちょっとトリッキーですが、  String.string_type = nil or StringType_None のときには現在の Ruby と同じく、バイト位置のバイトデータを返す。  String.string_type = StringType_SJIS or StringType_EUC or ... など、有効な文字コード系のクラスが入っている場合には、それで解釈した「文 字」(Fixnum)を取り出す、というのはどうでしょうか?。  −− 》もちろん String#[]が文字を取り出す methodで String#[]=が、自分の typeと 》は異なる typeの文字を引数に取るときに自動的に変換するか変換できない時は 》Exceptionを投げると言うのもまた「あり」ではないでしょうか?  「文字」が自分の type を知っていれば、の話ですね。 》# Ruby 2.0と並行して Ruby UTF-2000の開発かな?(笑)  実際上、そうなるでしょう。StringType_UTF2000 クラスの処理モジュールの 作成として・・。(たけ(tk)の想像ではね)。  UTF-2000 って文字鏡もターゲットに入っているんだよねぇ・・、わくわく。 たけ(tk)=熊谷秀武