Kako stvoriti višedimenzionalni niz u Rubyju

Kako stvoriti višedimenzionalni niz u Rubyju. Iako Ruby ne pruža eksplicitnu podršku za višedimenzionalne nizove, možete ga implementirati sami ako imate osnovno znanje jezika. U biti morate stvoriti "niz nizova" u kojem svaki element niza sadrži još jedan niz. Da biste stvorili takav višedimenzionalni niz u Rubyju, možete napisati metodu koja se koristi za generiranje nizova nizova tako da se kod ne mora ponavljati.

Napravite višedimenzionalni niz u Rubyju

Korak 1

Napišite kostur metode. Ova metoda će uzeti niz argumenata dimenzija i vratiti prazan višedimenzionalni niz tih dimenzija. Na primjer, za niz 10x10, pozovite ovu metodu mda (10,10):def mda (širina, visina) end

Video dana

Korak 2

Napravite niz elemenata širine.

Korak 3

Napravite niz elemenata visine za svaki element u nizu. To čini "niz nizova" koji će se koristiti kao dvodimenzionalni niz. Da biste stvorili prazne nizove određene duljine, koristite konstruktor Array.new s duljinom kao argumentom. U početku će sve vrijednosti u nizu biti nula.

4. korak

Koristite kartu! metoda također. Karta! metoda ponavlja svaki element u nizu, pokreće blok za svaki i dodjeljuje rezultat bloka elementu niza. Isti rezultat može se postići korištenjem for petlje, ali mapa! metoda je sažetija: def mda (širina, visina) a = Array.new (width) a.map! { Array.new (visina) }povratak aend

Korak 5

Koristite ovaj niz s operatorom indeksa (uglate zagrade []). Na primjer, ako imate niz 10x10 nazvan "a" i želite element 7,3, rekli biste a[7][3]: a = mda (10,10)# Ispunite niz vrijednostimaa[7][5] = "a string"a[2][9] = 23# Dohvati vrijednostiputs a[7][5]puts a[2][9]

Korak 6

Iskoristite mogućnost "lančanja" poziva metoda u Rubyju. Na primjer, metoda Array.new vraća niz. Možete ulančati poziv druge metode na taj da biste pozvali metodu u vraćenom nizu. Budući da povezujete metode, a ne koristite izraz return, ne trebate ni naziv varijable: def mda (širina, visina) Array.new (width).map!{ Array.new (height) }end

Savjet

Ruby je vrlo izražajan. MDA metoda može biti kratka i sažeta jedna linija koda. Dodatni redovi i ključne riječi samo čine da kod izgleda kompliciranije nego što zapravo jest. Povratna izjava nije potrebna u Rubyju. Ruby metode i blokovi automatski vraćaju rezultat posljednje izjave izvršene u metodi ili bloku.