From: Kunimi Ikeda Date: 2007-10-13T21:13:43+09:00 Subject: [ruby-list:44112] String#uptoについて いけだと申します。 String#uptoが、期待と違う動きをします。 これには何か理由があるのでしょうか。 ----ここから---- >ruby -v ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32] >irb irb(main):001:0> "a".upto("aa") do |s| irb(main):002:1* p s irb(main):003:1> end "a" "b" <中略> "z" "aa" irb(main):004:0> "c".upto("aa") do |s| irb(main):005:1* p s irb(main):006:1> end => "c" ---- ここまで ---- "c".upto("aa") についても、"c"から"aa"までを表示してほしかったのですが そのような動作になりませんでした。 また、以下についても同様な結果になりました。 ("c".."aa").each do |s| p s end リファレンスマニュアルには、次のように記載されていました。 なお、"c".succはちゃんと"d"になります。 > self から始めて max まで「次の文字列」を順番にブロックに与えて繰り返し > ます。「次」の定義については String#succ を参照してください。 > > このメソッドは文字列の Range の内部で使用されます。 *9 > > たとえば以下のコードは a, b, c, ... z,aa, ... az, ..., za を出力します。 > > ("a" .. "za").each do |str| > puts str > end 個人的には、"c".upto("aa")も"a".upto("aa")と同じように動作してくれるとう れしいです。 いけだ