Menu
Coddy logo textTech

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, a nie 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 z kluczami i wartościami oddzielonymi przez => (nazywane strzałką 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 hasha, 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 też utworzyć pusty hash i dodać pary później:

scores = {}

puts scores  # Wyświetla: {}

Tablice asocjacyjne świetnie nadają się do reprezentowania rzeczywistych obiektów z nazwanymi atrybutami, 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, tablice asocjacyjne 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" przyporządkowany do tytułu książki
  • "author" przyporządkowany do imienia i nazwiska autora
  • "year" przyporządkowany do roku publikacji (jako liczby całkowitej)

Wypisz hash za pomocą puts.

Na przykład, jeśli dane wejściowe to Ruby Basics, Jane Smith i 2023, wynik powinien wyglądać tak:

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

Jeśli dane wejściowe to The Great Gatsby, F. Scott Fitzgerald i 1925, wynik powinien wyglądać tak:

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

Jeśli dane wejściowe to 1984, George Orwell i 1949, wynik powinien wyglądać tak:

{"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 (=>)
# Klucze powinny być następujące: "title", "author", "year"


# Wyświetl 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