Jak stworzyć wielowymiarową tablicę w Ruby

Jak stworzyć wielowymiarową tablicę w Ruby. Chociaż Ruby nie zapewnia wyraźnej obsługi tablic wielowymiarowych, możesz zaimplementować je samodzielnie, jeśli masz podstawową wiedzę o języku. Zasadniczo musisz utworzyć „tablicę tablic”, w której każdy element tablicy zawiera jeszcze jedną tablicę. Aby stworzyć taką wielowymiarową tablicę w Ruby, możesz napisać metodę używaną do generowania tablic tablic, dzięki czemu kod nie musi być powtarzany.

Utwórz tablicę wielowymiarową w Ruby

Krok 1

Napisz szkielet metody. Ta metoda pobierze pewną liczbę argumentów wymiarów i zwróci pustą wielowymiarową tablicę tych wymiarów. Na przykład dla tablicy 10x10 wywołaj tę metodę mda (10,10):def mda (szerokość, wysokość) end

Wideo dnia

Krok 2

Utwórz tablicę elementów szerokości.

Krok 3

Utwórz tablicę elementów wysokości dla każdego elementu w tablicy. To tworzy "tablicę tablic", która będzie używana jako tablica dwuwymiarowa. Aby utworzyć puste tablice o określonej długości, użyj konstruktora Array.new z argumentem długości. Początkowo wszystkie wartości w tablicy będą zerowe.

Krok 4

Skorzystaj z mapy! metody. Mapa! Metoda iteruje każdy element w tablicy, uruchamia blok dla każdego z nich i przypisuje wynik bloku do elementu tablicy. Ten sam wynik można osiągnąć za pomocą pętli for, ale mapa! metoda jest bardziej zwięzła: def mda (szerokość, wysokość) a = Array.new (szerokość) a.map! { Array.new (wysokość) }return aend

Krok 5

Użyj tej tablicy z operatorem indeksu dolnego (nawiasy kwadratowe []). Na przykład, jeśli masz tablicę 10x10 o nazwie „a” i chcesz mieć element 7,3, powiedziałbyś a[7][3]: a = mda (10,10)# Wypełnij tablicę wartościamia[7][5] = "ciąg"a[2][9] = 23# Pobierz wartościumieszcza a[7][5]umieszcza a[2][9]

Krok 6

Skorzystaj z możliwości „łańcuchowania” wywołań metod w Rubim. Na przykład metoda Array.new zwraca tablicę. Możesz połączyć inne wywołanie metody z tym, aby wywołać metodę na zwróconej tablicy. Ponieważ łączysz metody i nie używasz instrukcji return, nie potrzebujesz również nazwy zmiennej: def mda (szerokość, wysokość) Array.new (szerokość).map!{ Array.new (wysokość) }end

Wskazówka

Rubin jest bardzo wyrazisty. Metoda MDA może składać się z krótkiej i zwięzłej pojedynczej linii kodu. Dodatkowe wiersze i słowa kluczowe sprawiają, że kod wygląda na bardziej skomplikowany, niż jest w rzeczywistości. Oświadczenie return nie jest konieczne w Rubim. Metody i bloki Rubiego automatycznie zwracają wynik ostatniej instrukcji wykonanej w metodzie lub bloku.