Ako vytvoriť viacrozmerné pole v Ruby

Ako vytvoriť viacrozmerné pole v Ruby. Hoci Ruby neposkytuje explicitnú podporu pre viacrozmerné polia, môžete si jedno implementovať sami, ak máte základné znalosti jazyka. V podstate musíte vytvoriť "pole polí", v ktorých každý prvok poľa obsahuje ďalšie pole. Ak chcete vytvoriť takéto viacrozmerné pole v Ruby, môžete napísať metódu používanú na generovanie polí polí, takže kód sa nemusí opakovať.

Vytvorte viacrozmerné pole v Ruby

Krok 1

Napíšte kostru metódy. Táto metóda bude mať množstvo argumentov dimenzie a vráti prázdne viacrozmerné pole týchto dimenzií. Napríklad pre pole 10x10 zavolajte túto metódu mda (10,10):def mda (šírka, výška) end

Video dňa

Krok 2

Vytvorte pole prvkov šírky.

Krok 3

Vytvorte pole prvkov výšky pre každý prvok v poli. Toto vytvorí „pole polí“, ktoré sa použije ako dvojrozmerné pole. Ak chcete vytvoriť prázdne polia špecifickej dĺžky, použite konštruktor Array.new s dĺžkou ako argumentom. Na začiatku budú všetky hodnoty v poli nulové.

Krok 4

Použite mapu! metóda tiež. Mapa! metóda iteruje každý prvok v poli, spúšťa blok pre každý a priraďuje výsledok bloku k prvku poľa. Rovnaký výsledok možno dosiahnuť pomocou cyklu for, ale mapy! metóda je stručnejšia: def mda (šírka, výška) a = Array.new (šírka) a.map! { Array.new (height) }return aend

Krok 5

Použite toto pole s operátorom dolného indexu (hranaté zátvorky []). Napríklad, ak by ste mali pole 10x10 s názvom „a“ a chceli by ste prvok 7,3, povedali by ste a[7][3]: a = mda (10,10)# Vyplňte pole hodnotamia[7][5] = "reťazec"a[2][9] = 23# Získanie hodnôt a[7][5]vloží a[2][9]

Krok 6

Využite možnosť „reťaziť“ volania metód v Ruby. Napríklad metóda Array.new vráti pole. Na to môžete reťaziť ďalšie volanie metódy, aby ste zavolali metódu vo vrátenom poli. Keďže reťazíte metódy a nepoužívate príkaz return, nepotrebujete ani názov premennej: def mda (šírka, výška) Array.new (width).map!{ Array.new (height) }end

Tip

Ruby je veľmi výrazná. Metóda MDA môže byť krátky a výstižný jeden riadok kódu. Ďalšie riadky a kľúčové slová len spôsobujú, že kód vyzerá komplikovanejšie, než v skutočnosti je. Návratový príkaz nie je v Ruby potrebný. Metódy a bloky Ruby automaticky vrátia výsledok posledného príkazu vykonaného v metóde alebo bloku.