Kuinka luoda moniulotteinen taulukko Rubyssa. Vaikka Ruby ei tarjoa nimenomaista tukea moniulotteisille taulukoille, voit toteuttaa sellaisen itse, jos sinulla on perustiedot kielestä. Pohjimmiltaan sinun on luotava "taulukkotaulukko", jossa jokainen taulukon elementti sisältää vielä yhden taulukon. Jos haluat luoda tällaisen moniulotteisen taulukon Rubyssa, voit kirjoittaa menetelmän, jota käytetään taulukoiden luomiseen, jotta koodia ei tarvitse toistaa.
Luo moniulotteinen taulukko Rubyssa
Vaihe 1
Kirjoita menetelmän runko. Tämä menetelmä ottaa useita ulottuvuusargumentteja ja palauttaa näiden ulottuvuuksien tyhjän moniulotteisen taulukon. Esimerkiksi 10x10 taulukossa kutsu tätä menetelmää mda (10,10):def mda (leveys, korkeus) end
Päivän video
Vaihe 2
Luo joukko leveyselementtejä.
Vaihe 3
Luo jokaiselle taulukon elementille joukko korkeuselementtejä. Tämä tekee "taulukoista", jota käytetään kaksiulotteisena taulukkona. Jos haluat luoda tietynpituisia tyhjiä taulukoita, käytä Array.new-konstruktoria, jonka pituus on argumentti. Aluksi kaikki taulukon arvot ovat nollia.
Vaihe 4
Käytä karttaa! menetelmä myös. Kartta! menetelmä iteroi jokaisen taulukon elementin, suorittaa jokaiselle lohkon ja määrittää lohkon tuloksen taulukon elementille. Sama tulos voidaan saavuttaa käyttämällä for-silmukkaa, mutta kartta! menetelmä on ytimekkäämpi: def mda (leveys, korkeus) a = Array.new (leveys) a.map! { Array.new (korkeus) }return aend
Vaihe 5
Käytä tätä taulukkoa alaindeksin (hakasulkeet []) operaattorin kanssa. Jos sinulla olisi esimerkiksi 10x10-taulukko nimeltä "a" ja halusit 7,3-elementin, sanoisit a[7][3]: a = mda (10,10)# Täytä taulukko arvoilla[7][5] = "merkkijono"a[2][9] = 23# Hae arvot asettaa a[7][5]asee a[2][9]
Vaihe 6
Hyödynnä kykyä "ketjuttaa" menetelmäkutsuja Rubyssa. Esimerkiksi Array.new-metodi palauttaa taulukon. Voit ketjuttaa toisen menetelmäkutsun siihen kutsuaksesi menetelmän palautetussa taulukossa. Koska ketjutat metodit etkä käytä return-lausetta, et myöskään tarvitse muuttujan nimeä: def mda (leveys, korkeus) Array.new (width).map!{ Array.new (height) }end
Kärki
Ruby on erittäin ilmeikäs. MDA-menetelmä voi olla lyhyt ja ytimekäs yksi koodirivi. Ylimääräiset rivit ja avainsanat saavat koodin näyttämään monimutkaisemmalta kuin se todellisuudessa on. Palautuslausetta ei tarvita Rubyssa. Ruby-menetelmät ja -lohkot palauttavat automaattisesti menetelmässä tai lohkossa suoritetun viimeisen käskyn tuloksen.