Hi,
I have just started programming with Ruby and have run into the
following
problem.
I’m trying to work with 3 dimensional arrays and have run into a problem
dimensioning the array.
a = [[[]]]
a[0][0] = [ 0,1,2,3]
a[0][1] = [ “zero”, “one”,“two”,three"]
The above assignments work without a problem, but the following
assignment
fails.
a[1][0] = [ 4, 5, 6, 7]
NoMethodError: undefined method `[]=’ for nil:NilClass
How do you dimension the number of elements in a multi-dimensional array
when
the final number of elements in the array is not known.
–
Regards,
Graham S.
On Jul 7, 2006, at 12:09 PM, Graham S. wrote:
How do you dimension the number of elements in a multi-dimensional
array when
the final number of elements in the array is not known.
Try http://raa.ruby-lang.org/project/narray/
On Jul 7, 2006, at 1:09 PM, Graham S. wrote:
a = [[[]]]
How do you dimension the number of elements in a multi-dimensional
array when
the final number of elements in the array is not known.
–
Regards,
Graham S.
class Array
def default(&proc)
@default = proc
self
end
alias_method :rb_array_indexing, :"[]"
def
if @default and index.kind_of? Integer and index >= length
index.downto(length) do |i|
self[i] = @default.call(i)
end
end
rb_array_indexing(index)
end
end
a = []
a.default { [] }
a[1][0] = “Hello”
a #=> [[], [“Hello”]]