Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: xk007 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:
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:
[[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]
[["hello", 2, 3], ["hello", 2, 3], ["hello", 2, 3], ["hello", 2, 3]]
[[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]
[["hello", 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]
-
To jsou reference, takze menis v druhem pripade furt ten sam objekt/pole.
-
V prvnim pripade. Druhy parametr 1,2,3 je pouzit jako zdroj a je referencovan v novem poli.