Ruby: základy práce s polem

Ruby: základy práce s polem
« kdy: 03. 04. 2019, 07:51:50 »
Jaký rozdíl mezi vytvářením pole pomocí Array.new(n, x) a Array.new(n) { x }?

Např. když zkusím toto:

Kód: [Vybrat]
a = Array.new(4, [1, 2, 3])
p a
a[0][0] = "hello"
p a
puts
a = Array.new(4) { [1, 2, 3] }
p a
a[0][0] = "hello"
p a

tak nechápu druhý řádek výstupu:

Kód: [Vybrat]
[[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]
[["hello", 2, 3], ["hello", 2, 3], ["hello", 2, 3], ["hello", 2, 3]]

Kód: [Vybrat]
[[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]
[["hello", 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]
« Poslední změna: 03. 04. 2019, 09:01:46 od Petr Krčmář »


Re:Ruby-základy práce s polem
« Odpověď #1 kdy: 03. 04. 2019, 08:11:13 »
To jsou reference, takze menis v druhem pripade furt ten sam objekt/pole.

Re:Ruby-základy práce s polem
« Odpověď #2 kdy: 03. 04. 2019, 08:12:28 »
V prvnim pripade. Druhy parametr 1,2,3 je pouzit jako zdroj a je referencovan v novem poli.