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.