From: sheepman Date: 2007-08-05T14:09:46+09:00 Subject: [ruby-dev:31349] Array#[]=(pos, length, val) and Array#[]=(range, val) こんにちは、sheepman です。 毎度のことですが、リファレンスを編集していて気になったことです。 Array#[]=(pos, length, val) の length に 0 を指定した場合、 pos の直前に val が挿入されるというのは、仕様ですよね。 http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Array#self.5bstart.2c.20length.5d.3dval には明示的に書かれていませんが、 http://doc.loveruby.net/refm/api/view/method/Array/i/=5b=5d=3d にはそのように書きました。 あとこれは仕様なのか分からないのですが、 Array#[]=(range, val) の range の first が end よりも後にある場合、 val が first の直前に挿入されるのは仕様なのでしょうか。 $ cat t.rb a = [0, 1, 2, 3] a[2..0] = ['a', 'b'] p a $ ruby-1.8 -v t.rb ruby 1.8.6 (2007-06-18 patchlevel 5000) [i686-linux] [0, 1, "a", "b", 2, 3] http://doc.loveruby.net/refm/api/view/method/Array/i/=5b=5d=3d にはそのように書きました。 -- sheepman / TAMURA Takashi sheepman@sheepman.sakura.ne.jp