Jak vytvořit vícerozměrné pole v Ruby

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.