Kā izveidot daudzdimensiju masīvu rubīnā. Lai gan Ruby nenodrošina skaidru atbalstu daudzdimensiju masīviem, varat tos ieviest pats, ja jums ir valodas pamatzināšanas. Būtībā jums ir jāizveido "masīvu masīvs", kurā katram masīva elementam ir vēl viens masīvs. Lai izveidotu šādu daudzdimensiju masīvu Ruby, varat uzrakstīt metodi, kas tiek izmantota masīvu masīvu ģenerēšanai, lai kods nebūtu jāatkārto.
Izveidojiet daudzdimensiju masīvu rubīnā
1. darbība
Uzrakstiet metodes skeletu. Šī metode izmantos vairākus dimensiju argumentus un atgriezīs tukšu šo dimensiju daudzdimensiju masīvu. Piemēram, masīvam 10x10 izsauciet šo metodi mda (10,10):def mda (platums, augstums) end
Dienas video
2. darbība
Izveidojiet platuma elementu masīvu.
3. darbība
Katram masīva elementam izveidojiet augstuma elementu masīvu. Tas veido "masīvu masīvu", kas tiks izmantots kā divdimensiju masīvs. Lai izveidotu tukšus noteikta garuma masīvus, izmantojiet konstruktoru Array.new ar garumu kā argumentu. Sākotnēji visas masīva vērtības būs nulles.
4. darbība
Izmantojiet karti! metode arī. Karte! metode atkārto katru masīva elementu, palaiž katram bloku un piešķir bloka rezultātu masīva elementam. To pašu rezultātu var sasniegt, izmantojot for cilpu, bet karti! metode ir kodolīgāka: def mda (platums, augstums) a = Array.new (platums) a.map! { Masīvs.jauns (augstums) }atgriezties aend
5. darbība
Izmantojiet šo masīvu ar apakšindeksa (kvadrātiekavu []) operatoru. Piemēram, ja jums būtu 10 x 10 masīvs ar nosaukumu "a" un vēlaties elementu 7,3, jūs teiktu a[7][3]: a = mda. (10,10)# Aizpildiet masīvu ar valuea[7][5] = "virkne"a[2][9] = 23# Izgūt vērtības ievieto a[7][5]ieliek a[2][9]
6. darbība
Izmantojiet iespēju Ruby "ķēdēt" metodes zvanus. Piemēram, metode Array.new atgriež masīvu. Varat piesaistīt citu metodes izsaukumu, lai izsauktu metodi atgrieztajā masīvā. Tā kā metodes tiek sasaistītas ķēdē un neizmantojat atgriešanas priekšrakstu, jums nav nepieciešams arī mainīgā nosaukums: def mda (platums, augstums) Array.new (width).map!{ Array.new (height) }end
Padoms
Rubīns ir ļoti izteiksmīgs. MDA metode var būt īsa un kodolīga viena koda rindiņa. Papildu rindas un atslēgvārdi tikai padara kodu izskatīties sarežģītāk, nekā tas patiesībā ir. Ruby valodā atgriešanas paziņojums nav nepieciešams. Rubīna metodes un bloki automātiski atgriež pēdējā metodē vai blokā izpildītā paziņojuma rezultātu.