Portál AbcLinuxu, 12. května 2025 08:00

Dotaz: ruby a vicerozmerna pole

27.6.2009 23:49 hombre
ruby a vicerozmerna pole
Přečteno: 297×
Odpovědět | Admin

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?

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.6.2009 13:16 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: ruby a vicerozmerna pole
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ruby nemá vícerozměrná pole, takže je potřeba použít pole polí, jako to děláte. Zápis může být trochu kratší, například můžete psát 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.
Ještě na tom nejsem tak špatně, abych četl Viewegha.
28.6.2009 19:20 hombre
Rozbalit Rozbalit vše diky
Odpovědět | | Sbalit | Link | Blokovat | Admin

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).

 

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.