From: EGUCHI Osamu Date: 1997-09-19T11:41:08+09:00 Subject: [ruby-list:4434] invalid index of Array えぐちです。 Array クラスを使ってみようと思ってプログラムを書きましたが、 思ったように動かなかったので、疑問点を分離してみました。 疑問点は、 + 配列の添字に負数を使ったとき 最大の添字を持つ要素を [-1] で参照できるんですが、 これで正しいのでしょうか? + 'Fixnum[添字]' はエラーでないんですか? 2次元配列をつくって見ようとたとき 誤って要素を配列でなく数値で初期化したら その要素の要素へのアクセスが出来てしまいました。 + 配列の要素に配列自身を代入すると、、 代入式自体は実行できるようですが、そのオブジェクトに さわるとインタプリタが落ちます。 本質的な問題ではないんですが、ちょっとになったので、、 以下再現させたリストと実行状況です。 --- aptiva0.eguchi:42% cat array.rb ary=[] for i in 0..9 ary[i] = i end print "ary.inspect => [#{ary.join(', ')}]\n" print "ary[-1] = #{ary[-1]}\n" print "ary[-2] = #{ary[-2]}\n" fixnum = 1 print "fixnum[0] = #{fixnum[0]}\n" print "fixnum[1] = #{fixnum[1]}\n" ary[0]=ary print ary, "\n" aptiva0.eguchi:43% ruby array.rb ary.inspect => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ary[-1] = 9 ary[-2] = 8 fixnum[0] = 1 fixnum[1] = 0 array.rb:17:in `to_s': fatal: stack level too deep from array.rb:17:in `to_s' from array.rb:17:in `to_s' from array.rb:17:in `to_s' from array.rb:17:in `to_s' from array.rb:17:in `to_s' from array.rb:17:in `to_s' from array.rb:17:in `to_s' from array.rb:17:in `to_s' ... 12218 levels... from array.rb:17:in `to_s' from array.rb:17:in `to_s' from array.rb:17:in `print' from array.rb:17 aptiva0.eguchi:44% ---