Nested arrays


#1

Hi,

I’m new to this gem called ruby, but having difficulties generating
nested
arrays. Why is: var = Array.new(p, Array.new(q, 0)) not the same as:
var = Array.new§ {Array.new(q, 0)} ?? (I know the later one works, but
it
took me ages for figuring this out :D)

Thnx for your answer… Mathias


#2

Mathias removed_email_address@domain.invalid wrote:

Hi,

I’m new to this gem called ruby, but having difficulties generating
nested arrays. Why is: var = Array.new(p, Array.new(q, 0)) not the
same as:
var = Array.new§ {Array.new(q, 0)} ?? (I know the later one works,
but it took me ages for figuring this out :D)

Thnx for your answer… Mathias

Because in the first case you provide just a single object that is used
for
initialization while the second case you provide a code block that is
executed once for each array element to initialize. Does that help?

Kind regards

robert

#3

Hi Robert,

nested arrays. Why is: var = Array.new(p, Array.new(q, 0)) not the
same as:
var = Array.new§ {Array.new(q, 0)} ?? (I know the later one works,
but it took me ages for figuring this out :D)

Thnx for your answer… Mathias

Because in the first case you provide just a single object that is used
for initialization while the second case you provide a code block that is
executed once for each array element to initialize. Does that help?

Yepp, and “language reference” says:
Array.new(size, obj) means [… is created with size copies of obj (that
is,
size references to the same obj)…] I possible read the same over and
over again ;).

thanks for fast reply, Mathias