Kā izveidot daudzdimensiju masīvu rubīnā

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.