From: "Masahiro TATSUMI (巽 雅洋)" Date: 2003-02-27T16:10:15+09:00 Subject: [ruby-list:37188] String#[] の挙動がおかしい場合がある? 初めまして。巽と申します。 String から一部分だけ取り出そうとして String#[] を使っていたので すが、どうも期待通りならず調べていました。 すると、String#[] が妙な挙動を示したので報告します。 以下の例では 文字列 a に対する動作は期待通りですが、何故か b は 挙動が違ってきてしまいます。 % cat test.rb a = "0123456789abcdefghijklmn" b = "12340000112 090295 5000 5001 5002340 0 0 0 5 0" 0.upto(10) {|i| puts a[0,i] } 0.upto(10) {|i| puts a[i,20] } 0.upto(10) {|i| puts b[0,i] } 0.upto(10) {|i| puts b[i,20] } % % ruby -v ruby 1.6.8 (2002-12-24) [i686-linux] % ruby test.rb 0 01 012 0123 01234 012345 0123456 01234567 012345678 0123456789 0123456789abcdefghij 123456789abcdefghijk 23456789abcdefghijkl 3456789abcdefghijklm 456789abcdefghijklmn 56789abcdefghijklmn 6789abcdefghijklmn 789abcdefghijklmn 89abcdefghijklmn 9abcdefghijklmn abcdefghijklmn 1 12 123 1234 12340 123400 1234000 12340000 123400001 1234000011 12340000112 090295 5 2340000112 090295 50 340000112 090295 500 40000112 090295 5000 0000112 090295 5000 000112 090295 5000 5 00112 090295 5000 50 0112 090295 5000 500 112 090295 5000 5001 12 090295 5000 5001 2 090295 5000 5001 5 --- 巽 雅洋