From: Yui NARUSE Date: 2009-11-04T00:04:04+09:00 Subject: [ruby-dev:39626] [Bug #2327] String#upto で beg が非英数の時破壊的変更がその後に影響する Bug #2327: String#upto で beg が非英数の時破壊的変更がその後に影響する http://redmine.ruby-lang.org/issues/show/2327 起票者: Yui NARUSE ステータス: Open, 優先度: Normal カテゴリ: core ruby -v: ruby 1.9.2dev (2009-11-02 trunk 25631) [x86_64-freebsd8.0] String の場合、upto のブロックパラメータを破壊的に変更することが出来ますが、 非英数の際にこれがその後の挙動に影響を与えることがあります。 irb(main):001:0> "1".upto("9"){|x|print x;x.replace("9")} 123456789=> "1" irb(main):002:0> "a".upto("z"){|x|print x;x.replace("z")} abcdefghijklmnopqrstuvwxyz=> "a" irb(main):003:0> "\u3041".upto("\u3093"){|x|print x;x.replace("\u3093")} ぁ=> "ん" irb(main):004:0> s="\u3041";s.upto("\u3093"){|x|print x;x.replace("\u3093")} ぁ=> "ん" 以上のように、"ぁ"のみで終わってしまったり、戻り値が変わってしまったりします。 ---------------------------------------- http://redmine.ruby-lang.org