2

Rubyで配列を実験しています。ネストされた配列の最大数にアクセスできません。実験例を以下に示します。

array = [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

では、Ruby における配列の次元数の制限をご存知ですか?

4

2 に答える 2

7

制限は、メモリが不足したときです。

于 2013-02-06T20:33:10.433 に答える
1

コメンター @HunterMcMillen のアイデアによると、次のようにテストできます。

# Warning: be prepared for a sad computer!
depth=0; arr=[]; a=arr
begin
  while true do
    b = []
    a.push(b)
    a = b
    depth += 1
  end
rescue => e
  puts "OK: depth=#{depth}, error=#{e} (#{e.class})"
end

おそらく、ある時点で何らかのエラー (メモリ不足など) が発生し、ネストできた配列の数が表示されます。

于 2013-02-06T20:46:02.497 に答える