Menu
CoddyTech

Tworzenie hashy

Część sekcji Podstawy ścieżki Ruby w Coddy. Lekcja 73 z 88.

Tablice świetnie nadają się do przechowywania uporządkowanych list, ale czasami trzeba powiązać wartości z konkretnymi etykietami zamiast z indeksami liczbowymi. Hash przechowuje dane w postaci par klucz-wartość, gdzie każdy klucz wskazuje odpowiadającą mu wartość.

Aby utworzyć hash, użyj nawiasów klamrowych, oddzielając klucze od wartości za pomocą => (nazywanego rakietą hasha):

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

puts person  # Wyświetla: {"name"=>"Alice", "age"=>25, "city"=>"Paris"}

Każdy klucz musi być unikalny w obrębie tablicy haszującej, ale wartości mogą się powtarzać. Klucze i wartości mogą być dowolnego typu danych, w tym ciągami znaków, liczbami, a nawet tablicami.

Możesz także utworzyć pusty hash i później dodawać pary:

scores = {}

puts scores  # Wyświetla: {}

Hasze doskonale nadają się do reprezentowania obiektów ze świata rzeczywistego za pomocą nazwanych atrybutów, takich jak produkt z nazwą i ceną albo użytkownik z adresem e-mail i hasłem. W przeciwieństwie do tablic, w których trzeba pamiętać pozycje, hasze pozwalają używać znaczących nazw do organizowania danych.

challenge icon

Wyzwanie

Łatwy

Wczytaj trzy wiersze danych wejściowych:

  1. Tytuł książki (ciąg znaków)
  2. Imię i nazwisko autora (ciąg znaków)
  3. Rok publikacji (liczba całkowita)

Utwórz hash o nazwie book z trzema parami klucz-wartość, używając składni hash rocket (=>):

  • "title" przypisz tytuł książki
  • "author" przypisz imię i nazwisko autora
  • "year" przypisz rok publikacji (jako liczbę całkowitą)

Wyświetl hash za pomocą puts.

Na przykład, jeśli dane wejściowe to Ruby Basics, Jane Smith i 2023, dane wyjściowe powinny wyglądać następująco:

{"title"=>"Ruby Basics", "author"=>"Jane Smith", "year"=>2023}

Jeśli dane wejściowe to The Great Gatsby, F. Scott Fitzgerald i 1925, dane wyjściowe powinny wyglądać następująco:

{"title"=>"The Great Gatsby", "author"=>"F. Scott Fitzgerald", "year"=>1925}

Jeśli dane wejściowe to 1984, George Orwell i 1949, dane wyjściowe powinny wyglądać następująco:

{"title"=>"1984", "author"=>"George Orwell", "year"=>1949}

Spróbuj swoich sił

# Wczytaj dane wejściowe
title = gets.chomp
author = gets.chomp
year = gets.to_i

# TODO: Utwórz hash o nazwie 'book' z trzema parami klucz-wartość, używając składni hash rocket (=>)
# Kluczami powinny być: "title", "author", "year"


# Wypisz hash
puts book
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Ruby online