Portál AbcLinuxu, 12. května 2025 08:00
Tak si trochu hraju s ruby a potreboval bych vice(dvou)rozmerne pole.
Zatim jsem to poresil nejak takhle:
#!/usr/bin/ruby
dpole = [] #vytvoreni
2.times { #naplneni
|j|
pole = Array.new
2.times {
|i|
pole[i] = rand(10)
}
dpole[j] = pole
}
dpole.each { |j| #a cteni
j.each { |i|
print "#{i}"
}
}
neznate nekdo nejake elegantnejsi reseni?
dpole[i][j]
pro přístup k prvku pole, pro vytvoření třeba dpole = [ [1, 2], [3, 4] ]
nebo dpole = Array.new(x) { Array.new(y) { rand(10) } }
(pole polí o velikosti x
na y
, kde každý prvek je náhodné číslo do 10).
Dokumentace (http://www.ruby-doc.org/core/classes/Array.html) sice obecně stojí za starou belu, ale občas jsou v ní příklady, ze kterých se dá něco vykoukat.
Dik za nakopnuti, je to jako dynamicka pole v C, ale bez aloka a dealokace, takze zadarmo a bez starosti. Cekal jsem nejaky figl, ale to by bylo asi proti filosofii ruby (spis jako Perl).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.