Kā izveidot un izmantot hases rubīnā

Masīvi nav vienīgais veids, kā pārvaldīt mainīgo kolekcijas Rubīns. Cits mainīgo lielumu vākšanas veids ir hash, ko sauc arī par asociatīvo masīvu. Jaucējs ir kā masīvs, jo tas ir mainīgais, kas glabā citus mainīgos. Tomēr jaucējs atšķirībā no masīva ir tāds, ka saglabātie mainīgie netiek saglabāti kādā noteiktā secībā un tie tiek izgūti ar atslēgu, nevis pēc to atrašanās vietas kolekcijā.

Izveidojiet sajaukšanos ar atslēgu / vērtību pāriem

Jaucējs ir noderīgs, lai saglabātu tā sauktos atslēgu / vērtību pāri. Taustiņu / vērtību pārim ir identifikators, kas norāda, kurš hash mainīgais, kuram vēlaties piekļūt un mainīgais lielums, kas jāglabā šajā pozīcijā. Piemēram, skolotājs, iespējams, glabā studenta atzīmes hash. Boba klasei hash var piekļūt ar taustiņu “Bobs”, un mainīgais, kas tiek glabāts šajā vietā, ir Boba pakāpe.

Sajaukuma mainīgo var izveidot tāpat kā masīva mainīgo. Vienkāršākā metode ir tukša hash objekta izveidošana un aizpildīšana ar atslēgu / vērtību pāriem. Ņemiet vērā, ka tiek izmantots indeksa operators, bet numura vietā tiek izmantots studenta vārds.

instagram viewer

Atcerieties, ka hashes nav sakārtotas, tas nozīmē, ka nav definēta sākuma vai beigu, kā tas ir masīvā. Tātad, jūs nevarat pievienot hash. Vērtības tiek vienkārši ievietotas hash, izmantojot indeksa operatoru.

#! / usr / bin / env rubīns
pakāpes = Hash.new
pakāpes ["Bobs"] = 82
pakāpes ["Jim"] = 94
pakāpes ["Billy"] = 58
liek atzīmes ["Jim"]

Hašas literāri

Tāpat kā masīvus, hash var izveidot ar hash burtus. Hašas burtus kvadrātiekavu vietā izmanto cirtaini breketes, un atslēgu vērtību pārus savieno =>. Piemēram, jaucējs ar vienu atslēgas / vērtības pāri Bob / 84 izskatās šādi: {"Bobs" => 84}. Jauktu burtam var pievienot papildu atslēgu / vērtību pārus, atdalot tos ar komatiem. Šajā piemērā jaukums tiek izveidots ar atzīmēm vairākiem studentiem.

#! / usr / bin / env rubīns
pakāpes = {"Bobs" => 82,
"Jim" => 94,
"Billy" => 58
}
liek atzīmes ["Jim"]

Piekļuve mainīgajiem mainīgajiem elementiem

Var būt reizes, kad jums ir jāpiekļūst katram mainīgajam hash. Izmantojot maiņas taustiņu, joprojām varat pārlūkot maiņas mainīgos katrs cilpa, lai gan tā nedarbosies tāpat kā katrs cilpa ar masīva mainīgajiem. Tā kā hash nav pasūtīts, secība, kādā katrs cilpa pār atslēgu / vērtību pāriem var nebūt tāda pati kā secībā, kādā tos ievietojāt. Šajā piemērā klašu sajaukums tiks pārvilkts un izdrukāts.

#! / usr / bin / env rubīns
pakāpes = {"Bobs" => 82,
"Jim" => 94,
"Billy" => 58
}
pakāpes.katru do | nosaukums, pakāpe |
liek "# {name}: # {grade}"
beigas
instagram story viewer