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.