[ruby-list:46996] Re: ASCII 文字の連続性について

From: "Hideo Konami" <konami@...>
Date: 2010-04-03 03:57:46 UTC
List: ruby-list #46996
小波です.

>いけだと申します。
>
>[ruby-list:44113]によると、
>> 無限ループを避けるため「辞書順のチェック」が入ってます
>ということらしいです。

ありがとうございます.用例を見ると, "a" .. "bb" というふうに
任意のアルファベットの文字列の「間」を埋める範囲を,範囲演算子
は生成するのですね.そのためにアルファベット—非アルファベット
の境界で切れ目が作ってあると.

しかし,任意の文字ではなく,文字列の間を範囲演算子でつなげる
という仕様は,期待されるものとは異なる要素を生成してしまうこ
とがありそうで,かえって怖いように思います.

>文字列ではなく文字コードの範囲を作れば、うまく動きます。
>
>(0x20..0x7e).map{|i| i.chr}
>#=> [" ", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",",
>"-", ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":",
>";", "<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H",
>"I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
>"W", "X", "Y", "Z", "[", "\\", "]", "^", "_", "`", "a", "b", "c", "d",
>"e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r",
>"s", "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~"]

たしかにこれなら大丈夫ですね.助かります.







In This Thread