Jak vytvořit a používat hash v Ruby

Pole nejsou jediným způsobem, jak spravovat kolekce proměnných v systému Rubín. Dalším typem kolekce proměnných je hash, také nazývané asociativní pole. Hash je jako pole v tom, že je to proměnná, která ukládá další proměnné. Avšak hash je na rozdíl od pole v tom, že uložené proměnné nejsou uloženy v žádném konkrétním pořadí a jsou získány pomocí klíče namísto jejich pozice ve sbírce.

Vytvořte hash s páry klíč / hodnota

Hash je užitečné k uložení toho, co se říká páry klíč / hodnota. Pár klíč / hodnota má identifikátor, který označuje, ke které proměnné hash chcete přistupovat a proměnná, která se má uložit do této pozice v hashu Například učitel může ukládat studentovy známky do hashe. Bobova známka by byla přístupná v hash klíčem „Bob“ a proměnná uložená v tomto místě by byla Bobova známka.

Proměnná hash může být vytvořena stejným způsobem jako proměnná matice. Nejjednodušší metodou je vytvoření prázdného objektu hash a jeho vyplnění dvojicemi klíč / hodnota. Všimněte si, že je použit indexový operátor, ale místo čísla se použije jméno studenta.

instagram viewer

Nezapomeňte, že hashe jsou neuspořádané, což znamená, že neexistuje definovaný začátek ani konec, jako je v poli. Takže nemůžete připojit hash. Hodnoty se jednoduše vloží do hash pomocí indexového operátora.

#! / usr / bin / env ruby
známky = Hash.new
známky ["Bob"] = 82
známky ["Jim"] = 94
známky ["Billy"] = 58
staví známky ["Jim"]

Hash Literals

Stejně jako pole lze hash vytvořit pomocí hashe literály. Hash literály používají složené závorky namísto hranatých závorek a páry klíčových hodnot jsou spojeny =>. Například hash s jedním párem klíč / hodnota Bob / 84 by vypadal takto: {"Bob" => 84}. K dvojici klíčů a hodnot lze přidat literál hash oddělením čárkami. V následujícím příkladu je hash vytvořen se známkami pro řadu studentů.

#! / usr / bin / env ruby
známky = {"Bob" => 82,
"Jim" => 94,
"Billy" => 58
}
staví známky ["Jim"]

Přístup k proměnným v Hash

Někdy musíte přistupovat ke každé proměnné v hashe. Stále můžete opakovat proměnné v hashu pomocí každý smyčka, i když to nebude fungovat stejným způsobem jako pomocí každý smyčka s proměnnými pole. Protože hash je neuspořádaný, pořadí, ve kterém každý se bude opakovat přes páry klíč / hodnota nemusí být stejné jako pořadí, ve kterém jste je vložili. V tomto příkladu bude hash známek opakován a vytištěn.

#! / usr / bin / env ruby
známky = {"Bob" => 82,
"Jim" => 94,
"Billy" => 58
}
stupně. jméno |
vloží "# {name}: # {grade}"
konec