Kako stvoriti i koristiti hasheve u Rubyu

nizovi nisu jedini način upravljanja zbirkama varijabli u sustavu Rubin. Druga vrsta zbirke varijabli je paprikaš, koji se naziva i asocijativni niz. Hash je poput niza u tome što je varijabla koja pohranjuje druge varijable. No, hash se razlikuje od niza u tome što pohranjene varijable nisu pohranjene određenim redoslijedom, a dohvaćene su ključem umjesto položaja u zbirci.

Napravite sjene s parovima ključ / vrijednost

Hash je koristan za pohranjivanje takozvanih parovi ključ / vrijednost. Par ključeva / vrijednosti ima identifikator koji označava kojoj varijabli hash-a želite pristupiti i varijablu za pohranjivanje u tom položaju u hashu. Na primjer, učitelj može pohraniti ocjene učenika u hash. Bobovoj ocjeni pristupili bi se u hashu pomoću ključa "Bob", a varijabla pohranjena na toj lokaciji bila bi Bobova ocjena.

Hash-varijabla se može stvoriti na isti način kao i varijabla matrice. Najjednostavnija metoda je stvoriti prazan hash objekt i napuniti ga parovima ključ / vrijednost. Imajte na umu da se koristi operator indeksa, ali umjesto broja koristi se ime učenika.

instagram viewer

Zapamtite da hashe nisu uređeni, što znači da nema definiranog početka ili kraja kao u nizu. Dakle, ne možete dodavati hash. Vrijednosti se jednostavno ubacuju u hash koristeći indeks operator.

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

Hash Literali

Kao i nizovi, hešovi se mogu kreirati pomoću hash-a literali. Hash literali koriste kovrčave zagrade umjesto kvadratnih zagrada, a parovima ključnih vrijednosti pridružuju se =>. Na primjer, hash s jednim parom ključa / vrijednosti Bob / 84 izgledao bi ovako: {"Bob" => 84}. Dodatni parovi ključ / vrijednost mogu se dodati u hash literal razdvajajući ih zarezima. U sljedećem primjeru stvara se hash s ocjenama za nekoliko učenika.

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

Pristup varijablama u hashu

Ponekad možete pristupiti svakoj varijabli u hashu. Još uvijek možete petljati preko varijabli u hashu koristeći svaki petlja, neće raditi na isti način kao pomoću svaki petlja s varijablama niza. Jer hash je neuređen, redoslijed kojim svaki će se petljati nad parovima ključ / vrijednost možda nisu isti kao redoslijed u koji ste ih umetnuli. U ovom primjeru, presjek ocjena bit će prekriven i ispisan.

#! / usr / bin / env rubin
ocjene = {"Bob" => 82,
"Jim" => 94,
"Billy" => 58
}
grade.each do | ime, ocjena |
stavlja "# {ime}: # {razred}"
kraj
instagram story viewer