W Ruby hasza odnosi się do zbioru par kluczowych. Jest ściśle podobny do tablicy w tym sensie, że może przechowywać wiele powiązanych wartości, ale indeksowanie odbywa się za pośrednictwem klawiszy, a nie liczb całkowitych. Jeśli znasz języki programowania Pythona, pomyśl o Ruby Hashes jako słownikach Python.
Z drugiej strony tablica odnosi się do uporządkowanego zbioru wartości. Możesz myśleć o tablicy jako lista elementów o określonym indeksie lub pozycji dla każdego elementu.
Możesz spotkać takie przypadki, w których musisz rozszerzyć indeks na rubin. Ułatwia to mapowanie danego zestawu wartości w tablicy do odpowiedniego formatu podobnego do słownika.
Ten samouczek obejmuje różne metody przekonwertowania danej tablicy Ruby w skrót.
Przykładowa tablica
Aby zademonstrować, w jaki sposób możemy przekonwertować tablicę na skrót w Ruby, będziemy współpracować z przykładową tablicą, która jest przedstawiona następująco:
arr = [1, „mysql”, 2, „postgresql”, 3, „sqlite”]
W takim przypadku chcemy przekonwertować tablicę na skrót, w którym wartość numeryczna działa jako klucz, a wartości ciągów są wartością skrótu.
Przekształcenie tablicy na skrót za pomocą metody TO_H
W najnowszych wersjach Ruby mamy dostęp do metody TO_H, która pozwala nam przekonwertować dwuwymiarową tablicę w rubinowy skrót.
Dlatego musimy najpierw przekonwertować tablicę jednowymiarową w dwuwymiarową tablicę.
Możemy to osiągnąć za pomocą metody każdego_slice. Ta metoda jest zdefiniowana w module rubinowym, który jest zawarty w klasie tablicy. Pozwala nam iterować elementy tablicy w plasterkach o danym rozmiarze.
Możemy użyć tej metody, jak pokazano w następującym kodzie:
arr.każdy_slice (2)
=> #
Zwraca to obiekt wyliczający, który możemy przekonwertować na tablicę za pomocą metody TO_A, jak pokazano następująco:
IRB (Main): 004: 0> ARR.każdy_slice (2).to_a
=> [[1, „mysql”], [2, „postgresql”], [3, „sqlite”]]]]
To powinno dać nam dwuwymiarową tablicę, jak pokazano wcześniej.
Na koniec możemy przekonwertować wartości na a, jak pokazano następująco:
IRB (Main): 005: 0> ARR.każdy_slice (2).to_a.to_h
Powstały skrót jest następujący:
=> 1 => "mysql", 2 => "postgresql", 3 => "sqlite"
Przekształcanie tablicy w skrót za pomocą metody skrótu :: []
Notacja:.
Aby przekonwertować tablicę na skrót za pomocą tej metody, możemy użyć następującego polecenia:
IRB (Main): 011: 0> Hash [„1”, „mysql”, „2”, „postgresql”, „3”, „sqlite”]
=> "1" => "mysql", "2" => "postgresql", "3" => "sqlite"
Powinno to zwrócić nowy skrót bez konieczności przekształcania tablicy na dwuwymiarową tablicę.
Wniosek
Omówiliśmy, w jaki sposób możesz użyć metody Array#To_h i hash :: [] do konwersji tablicy na skrót w języku programowania Ruby.