From: Hisanori Kiryu Date: 2008-01-20T17:04:23+09:00 Subject: [ruby-dev:33212] Re: Ruby1.9 String バイト列へのインデックス アクセス みなさま返答ありがとうございます。 >> |s = "abcde" >> |s.byte # "abcde"のバイト列オブジェクト >> |s.byte[3] # => 100 >> |s.byte[3] = 101 # 破壊的更新 >> |s # => "abcee" >> | >> |インデックスにはRangeも指定できるといいです。 >> >> その場合は右辺に文字列(またはBytes)を指定するわけ? > > そうです。Bytes#[]やBytes#[]=はArray#[]のようにRangeなども指定できるようにして、 > 右辺には文字列、Bytes、整数の配列等が指定できればいいかも。 うーん、これは私には必要十分というような、いい感じがします。 s.byte(3, 101) の形式は、代入感がないという以外に、 代入の右辺が比較的長い場合に、第二引数が長くなるか、 二行に分けて、一度テンポラリ変数で受けて代入することになるので、 アルゴリズムをすっきり書けないことが多いように思います。 かといって, 文字列として使いたいか、Byte列としてつかいたいかによって、 別オブジェクトとしてBytes.new したり、to_byte_array, to_str, force_encoding などconversion を繰り返したりするのも軽快でなく、気が重く感じられます。 このやり方だとデータ元のStringクラスから全く離れずに[], []= を使って数値の読み込み 書き込みができるので、素晴らしいと思います。 実現されればとてもありがたいです。 どうぞよろしくお願い致します。