Арраис нису једини начин за управљање колекцијама варијабли у Руби. Друга врста колекције променљивих је хасх, који се такође назива асоцијативни низ. Хасх је попут низа у томе што је променљива која чува друге променљиве. Међутим, хасх за разлику од низа у томе што похрањене варијабле нису похрањене у одређеном редослиједу и дохваћене су помоћу кључа умјесто према њиховој позицији у колекцији.
Направите мерење помоћу парова кључа / вредности
Хасх је користан за чување онога што се зове парови кључ / вредност. Пар кључ / вредност има идентификатор који означава којој варијабли хасх-а желите да приступите и променљива која се смешта у тај положај у хасх-у. На пример, наставник може да похрани оцене ученика у хасх. Бобовој оцени би се у хасху приступало помоћу тастера "Боб", а променљива која је смештена на тој локацији била би Бобова оцена.
Хасх варијабла се може креирати на исти начин као и варијабла матрице. Најједноставнија метода је креирање празног хасх објекта и његово пуњење паровима кључ / вриједност. Имајте на уму да се користи оператор индекса, али уместо броја користи се име ученика.
Запамтите да су хешеви неуређени, што значи да нема дефинисаног почетка или краја као у низу. Дакле, не можете додати додавање хасх-у. Вредности се једноставно убацују у хасх користећи индекс оператор.
#! / уср / бин / енв рубин
граде = Хасх.нев
оцене ["Боб"] = 82
оцене ["Јим"] = 94
оцене ["Билли"] = 58
ставља оцене ["Јим"]
Хасх Литералс
Баш као и низови, хешеви се могу креирати помоћу хасх-а литерали. Хасх литерали користе коврчаве заграде умјесто квадратних заграда и парови кључних вриједности су им се придружили =>. На пример, хасх са једним паром кључа / вредности Боб / 84 изгледао би овако: {"Боб" => 84}. Додатни парови кључ / вредност могу се додати у хасх литерал раздвајајући их зарезима. У следећем примеру се прави хеш са оценама за бројне студенте.
#! / уср / бин / енв рубин
оцене = {"Боб" => 82,
"Јим" => 94,
"Билли" => 58
}
ставља оцене ["Јим"]
Приступ променљивим у хасху
Понекад можете приступити свакој варијабли у хасху. И даље можете петљати преко променљивих у хасху користећи сваки петље, мада неће радити на исти начин као и коришћење сваки петља са варијаблама низа. Пошто је хасх неуређен, редослед по коме сваки ће се петљати над паровима кључ / вредност можда нису исти као редослед којим сте их уметнули. У овом примеру ће се хеш оцена оцењивати и штампати.
#! / уср / бин / енв рубин
оцене = {"Боб" => 82,
"Јим" => 94,
"Билли" => 58
}
граде.еацх до | име, оцена |
ставља "# {наме}: # {разред}"
крај