Хеш и символи

Основните разлики между хеш и масив са, че в хеш ключовете трябва да бъдат присвоени на елемент изрично, освен това ключът може да бъде всеки обект, а не само цяло число, както е в масивите. Пример за хеш:

Както можете да видите, хешовете също ви позволяват да съхранявате всякакъв вид данни и могат да бъдат с произволен размер, който е ограничен само от RAM паметта на компютъра, освен това ключовете също могат да бъдат от различен тип. Работата с хешове е много подобна на работата с масиви, така че няма да ги разглеждаме със същите подробности.
Трябва да помните, че докато масивите ви позволяват да съхранявате различни видове елементи, това не е много добър стил. Трябва да използвате масиви, за да съхранявате повече или по-малко същите елементи или вложени структури, които от своя страна също могат да бъдат масиви или хешове. В идеалния случай вашите структури трябва да изглеждат така:

Току-що получихме масив от еднородни обекти - плодовете, масивите са най-подходящи за съхраняване на еднородни обекти, тъй като те нямат индекси (говорещи) елементи (ключове) на елементи.

Хешовете са същите масиви, но с ключове, които описват информацията, която се крие зад тях, за разлика от индексите в масиви, които просто показват реда на елементите.
Преди да преминем към използването на хешове, ще разгледаме друг полезен тип данни в Ruby - символи.

Символ

Символите са специфични низове, които са посочени веднъж завинаги в програмата id. По-долу е прост пример за символ:

Както можете да видите, символът е просто низ, без кавички, който започва с двоеточие и е от тип Symbol.
Причината, поради която символите са въведени, когато има низове, е, че съхраняването на символи в компютърната памет е същото като съхраняването на числа, което спестява консумацията на оперативна памет и по време на изпълнението на програмата, примери:

#Object_id метод връща уникалния идентификатор на обекта - истинското име на обекта, чрез което той може да бъде достъпен в RAM. Както можете да видите, идентичните редове имат различни идентификатори, което означава, че всеки ред, въпреки че има едно и също съдържание, е представен от свой собствен обект, следователно, за да съхранява една и съща информация, в линията са създадени до четири обекта.

За числата и символите всичко е различно, едни и същи числа и символи не създават нови обекти и това е видно от факта, че идентификаторът на обекта за едни и същи числа и символи е еднакъв. Това поведение на символите прави изгодно използването им като ключове за хешове. Защо? - Само си представете хеш, състоящ се от няколко милиона двойки ключ-стойност, където ключът е низ.