Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: xk007 03. 04. 2019, 07:51:50

Název: Ruby: základy práce s polem
Přispěvatel: 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:

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]]
Název: Re:Ruby-základy práce s polem
Přispěvatel: alex6bbc 03. 04. 2019, 08:11:13
To jsou reference, takze menis v druhem pripade furt ten sam objekt/pole.
Název: Re:Ruby-základy práce s polem
Přispěvatel: alex6bbc 03. 04. 2019, 08:12:28
V prvnim pripade. Druhy parametr 1,2,3 je pouzit jako zdroj a je referencovan v novem poli.