From: Nobuyoshi Nakada Date: 2009-02-15T02:41:13+09:00 Subject: [ruby-dev:38013] Re: [Feature #1159] StringScanner に文字ベースでのインデックスを返すメソッドがほしい なかだです。 At Sun, 15 Feb 2009 01:55:49 +0900, 松田 明 wrote in [ruby-dev:38012]: > > StringScanner#pos の文字位置への変更は IO#pos との絡 > > みで難しく、 > > また、StringScanner#pos= や IO#pos= を使った後 > > で文字インデックスを > > 再算出しないといけないので、なかなか難しいように感じます。 > > なるほど。実装上難しいのですね。 > IOとの絡みというところもなかださんからも伺いました。 > だったら仕方がないのかもしれません。 実装上難しいというより、 ss = StringScanner.new("あ") ss.get_byte ss.pos の戻り値を定義できない限りどこかに矛盾を生じると思います。 > ただ、利用者の側から見ると、正規表現で文字列っぽく > scanさせるくせにインデックスはバイトかよ、とか、 > Stringを扱うのにString#[] と数えかたが違う点とか、 > そういう違和感はやっぱりあるような気がします。 むしろ、StringScannerを使っているのにインデックスを使っているこ とのほうが、コードのまずさを示しているような気がします。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦