Kako ustvariti in uporabljati hashe v Rubyju

Nizi niso edini način za upravljanje zbirk spremenljivk v Ruby. Druga vrsta zbirke spremenljivk je hašiš, ki se imenuje tudi asociativni niz. Hash je podobno matriki, ker je spremenljivka, ki hrani druge spremenljivke. Vendar pa se hash ne razlikuje od matrike v tem, da shranjene spremenljivke niso shranjene v določenem zaporedju in jih pridobijo s ključem, namesto po položaju v zbirki.

Ustvarite mešanico s pari ključ / vrednost

Haš je uporaben za shranjevanje tako imenovanih pari ključ / vrednost. Par ključ / vrednost ima identifikator, ki označuje, do katere spremenljivke hash-a želite dostopati in spremenljivko, ki jo shranite na tem mestu v hashu. Na primer, učitelj lahko shrani ocene učencev v hash. Do Bobove ocene bi dostopali v hashu s tipko "Bob", spremenljivka, shranjena na tem mestu, pa bi bila Bobova ocena.

Hash spremenljivko je mogoče ustvariti enako kot spremenljivko matrike. Najenostavnejša metoda je ustvariti prazen hash predmet in ga napolniti s pari ključ / vrednost. Upoštevajte, da se uporablja operator indeksa, namesto številke pa se uporablja ime študenta.

instagram viewer

Ne pozabite, da so razpršitve neurejene, kar pomeni, da ni definiranega začetka ali konca, kot je v matriki. Torej, ne morete dodati dodatek. Vrednosti so preprosto vstavljene v hash s pomočjo indeksa.

#! / usr / bin / env rubin
ocene = Hash.new
ocene ["Bob"] = 82
ocene ["Jim"] = 94
ocene ["Billy"] = 58
postavlja ocene ["Jim"]

Hash Literals

Tako kot nizi se lahko tudi s hešami ustvarjajo hešhi literali. Hash literali uporabljajo kodraste naramnice namesto kvadratnih oklepajev in pari ključnih vrednosti se jim pridružijo =>. Na primer, hash z enim ključem / vrednostnim parom Bob / 84 bi izgledal tako: {"Bob" => 84}. Dodatne pare ključ / vrednost lahko dodate v hash literal tako, da jih ločite z vejicami. V naslednjem primeru se ustvari hash z ocenami za številne študente.

#! / usr / bin / env rubin
ocene = {"Bob" => 82,
"Jim" => 94,
"Billy" => 58
}
postavlja ocene ["Jim"]

Dostop do spremenljivk v loputi

Mogoče pridete do vsake spremenljivke v hashu. Še vedno lahko zaznate spremenljivke v hashu z uporabo vsak zanke, čeprav ne bo delovalo enako kot z uporabo vsak zanka z matričnimi spremenljivkami. Ker je hash neurejen, vrstni red, v katerem vsak bo zanka nad pari ključ / vrednost morda ni enaka vrstnem redu, v katerem ste jih vstavili. V tem primeru se šifri ocen prikradejo in natisnejo.

#! / usr / bin / env rubin
ocene = {"Bob" => 82,
"Jim" => 94,
"Billy" => 58
}
grade.each do | ime, ocena |
postavi "# {ime}: # {ocena}"
konec