Jak tworzyć i używać skrótów w Ruby

Tablice nie są jedynym sposobem zarządzania kolekcjami zmiennych w Rubin. Innym rodzajem kolekcji zmiennych jest haszysz, zwany także tablicą asocjacyjną. Hash jest jak tablica, ponieważ jest zmienną, która przechowuje inne zmienne. Jednak skrót nie przypomina tablicy, ponieważ przechowywane zmienne nie są przechowywane w żadnej określonej kolejności i są pobierane za pomocą klucza, a nie według ich pozycji w kolekcji.

Utwórz skrót z parami klucz / wartość

Hash jest przydatny do przechowywania tak zwanych pary klucz / wartość. Para klucz / wartość ma identyfikator wskazujący, do której zmiennej hash chcesz uzyskać dostęp i zmienna do przechowywania w tej pozycji w haszu. Na przykład nauczyciel może przechowywać oceny ucznia w haszu. Klawisz „Bob” uzyska dostęp do oceny Boba w haszu, a zmienna przechowywana w tym miejscu będzie oceną Boba.

Zmienną skrótu można utworzyć w taki sam sposób jak zmienną tablicową. Najprostszą metodą jest utworzenie pustego obiektu skrótu i ​​wypełnienie go parami klucz / wartość. Zauważ, że używany jest operator indeksu, ale zamiast numeru używana jest nazwa ucznia.

instagram viewer

Pamiętaj, że skróty są nieuporządkowane, co oznacza, że ​​nie ma zdefiniowanego początku ani końca, tak jak w tablicy. Tak więc nie można dołączyć do skrótu. Wartości są po prostu wstawiane do skrótu za pomocą operatora indeksu.

#! / usr / bin / env ruby
stopnie = skrót. nowy
oceny [„Bob”] = 82
ocen [„Jim”] = 94
ocen [„Billy”] = 58
stawia oceny [„Jim”]

Hash Literals

Podobnie jak tablice, skróty można tworzyć za pomocą skrótu literały. Literały skrótu używają nawiasów klamrowych zamiast nawiasów kwadratowych, a pary klucz-wartość są połączone =>. Na przykład skrót z pojedynczą parą klucz / wartość Bob / 84 wyglądałby tak: {„Bob” => 84}. Dodatkowe pary klucz / wartość można dodać do literału skrótu, oddzielając je przecinkami. W poniższym przykładzie tworzony jest skrót z ocenami dla wielu studentów.

#! / usr / bin / env ruby
oceny = {„Bob” => 82,
„Jim” => 94,
„Billy” => 58
}
stawia oceny [„Jim”]

Dostęp do zmiennych w skrócie

Czasami musisz uzyskać dostęp do każdej zmiennej w haszu. Nadal możesz zapętlać zmienne w skrócie za pomocą każdy pętli, choć nie będzie działać tak samo, jak przy użyciu każdy pętla ze zmiennymi tablicowymi. Ponieważ skrót jest nieuporządkowany, kolejność, w jakiej każdy zapętli pary klucz / wartość mogą być inne niż kolejność ich wstawiania. W tym przykładzie skrót ocen zostanie zapętlony i wydrukowany.

#! / usr / bin / env ruby
oceny = {„Bob” => 82,
„Jim” => 94,
„Billy” => 58
}
grades.each do | name, grade |
wstawia „# {name}: # {grade}”
koniec