Kaip sukurti daugiamatį masyvą Ruby

Kaip sukurti daugiamatį masyvą Ruby. Nors Ruby nepateikia aiškaus daugiamačių masyvų palaikymo, galite juos įdiegti patys, jei turite pagrindinių kalbos žinių. Iš esmės turite sukurti „masyvų masyvą“, kuriame kiekvienas masyvo elementas turi dar vieną masyvą. Norėdami sukurti tokį daugiamatį masyvą Ruby, galite parašyti metodą, naudojamą masyvų masyvams generuoti, kad kodo nereikėtų kartoti.

Sukurkite daugiamatį masyvą „Ruby“.

1 žingsnis

Parašykite metodo skeletą. Šis metodas paims daugybę aspektų argumentų ir pateiks tuščią daugiamatį tų dimensijų masyvą. Pavyzdžiui, 10 x 10 masyve vadinkite šį metodą mda (10,10):def mda (plotis, aukštis) end

Dienos vaizdo įrašas

2 žingsnis

Sukurkite pločio elementų masyvą.

3 veiksmas

Sukurkite aukščio elementų masyvą kiekvienam masyvo elementui. Tai sukuria „masyvų masyvą“, kuris bus naudojamas kaip dvimatis masyvas. Norėdami sukurti tuščius konkretaus ilgio masyvus, naudokite konstruktorių Array.new su ilgiu kaip argumentu. Iš pradžių visos masyvo reikšmės bus nulinės.

4 veiksmas

Naudokite žemėlapį! metodas taip pat. Žemėlapis! Metodas kartoja kiekvieną masyvo elementą, kiekvienam paleidžia bloką ir priskiria bloko rezultatą masyvo elementui. Tą patį rezultatą galima pasiekti naudojant for kilpą, bet žemėlapį! metodas yra glaustesnis: def mda (plotis, aukštis) a = Array.new (plotis) a.map! { Masyvas.naujas (aukštis) }return aend

5 veiksmas

Naudokite šį masyvą su apatinio indekso (laužtiniuose skliaustuose []) operatorius. Pavyzdžiui, jei turėtumėte 10x10 masyvą, pavadintą "a" ir norėtumėte 7,3 elemento, sakytumėte a[7][3]: a = mda (10,10)# Užpildykite masyvą reikšmėmis[7][5] = "eilutė"a[2][9] = 23# Nuskaityti reikšmes įdeda a[7][5]deda a[2][9]

6 veiksmas

Pasinaudokite galimybe „sujungti“ metodo skambučius Ruby. Pavyzdžiui, metodas Array.new grąžina masyvą. Galite sujungti kitą metodo iškvietimą, kad iškviestumėte metodą grąžintame masyve. Kadangi sujungiate metodus ir nenaudojate return sakinio, jums nereikia ir kintamojo pavadinimo: def mda (plotis, aukštis) Array.new (width).map!{ Array.new (aukštis) }pabaiga

Patarimas

Rubinas labai išraiškingas. MDA metodas gali būti trumpa ir glausta viena kodo eilutė. Dėl papildomų eilučių ir raktinių žodžių kodas atrodo sudėtingesnis, nei yra iš tikrųjų. Grąžinimo pareiškimas „Ruby“ nėra būtinas. Rubino metodai ir blokai automatiškai grąžina paskutinio metodo ar bloko atlikto sakinio rezultatą.