Jak vytvořit vícerozměrné pole v Ruby. Přestože Ruby neposkytuje explicitní podporu pro vícerozměrná pole, můžete je implementovat sami, pokud máte základní znalosti jazyka. V podstatě musíte vytvořit „pole polí“, ve kterém každý prvek pole obsahuje další pole. Chcete-li vytvořit takové vícerozměrné pole v Ruby, můžete napsat metodu používanou ke generování polí polí, takže se kód nemusí opakovat.
Vytvořte vícerozměrné pole v Ruby
Krok 1
Napište kostru metody. Tato metoda vezme řadu argumentů dimenze a vrátí prázdné vícerozměrné pole těchto dimenzí. Například pro pole 10x10 zavolejte tuto metodu mda (10,10):def mda (šířka, výška) end
Video dne
Krok 2
Vytvořte pole šířkových prvků.
Krok 3
Vytvořte pole prvků výšky pro každý prvek v poli. Tím se vytvoří „pole polí“, které bude použito jako dvourozměrné pole. Chcete-li vytvořit prázdná pole určité délky, použijte konstruktor Array.new s délkou jako argumentem. Zpočátku budou všechny hodnoty v poli nulové.
Krok 4
Použijte mapu! metoda také. Mapa! metoda iteruje každý prvek v poli, pro každý spustí blok a přiřadí výsledek bloku prvku pole. Stejného výsledku lze dosáhnout pomocí smyčky for, ale mapa! metoda je stručnější: def mda (šířka, výška) a = Array.new (šířka) a.map! { Array.new (height) }return aend
Krok 5
Použijte toto pole s operátorem dolní index (hranaté závorky []). Pokud byste například měli pole 10x10 s názvem „a“ a chtěli byste prvek 7,3, řekli byste a[7][3]: a = mda (10,10)# Vyplňte pole hodnotamia[7][5] = "řetězec"a[2][9] = 23# Načtení hodnot a[7][5]vloží a[2][9]
Krok 6
Využijte možnosti „řetězení“ volání metod v Ruby. Například metoda Array.new vrací pole. Na to můžete přiřadit další volání metody, abyste zavolali metodu na vráceném poli. Protože řetězíte metody a nepoužíváte příkaz return, nepotřebujete ani název proměnné: def mda (šířka, výška) Array.new (width).map!{ Array.new (height) }end
Spropitné
Ruby je velmi výrazná. Metoda MDA může být krátký a výstižný jeden řádek kódu. Další řádky a klíčová slova jen způsobí, že kód bude vypadat složitější, než ve skutečnosti je. Příkaz return není v Ruby nutný. Metody a bloky Ruby automaticky vrátí výsledek posledního příkazu provedeného v metodě nebo bloku.