Menu
Coddy logo textTech

Symbole jako klucze hashy

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

Do tej pory używałeś ciągów znaków jako kluczy w hashach, stosując składnię z operatorem hash rocket. Jednak programiści Ruby często używają zamiast nich symboli jako kluczy, co jest bardziej przejrzystym i wydajnym rozwiązaniem.

Pamiętasz symbole z wcześniejszej części? To lekkie, niezmienne identyfikatory, które zaczynają się od dwukropka. Gdy używasz symboli jako kluczy, Ruby udostępnia specjalną skróconą składnię:

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

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

Zwróć uwagę, że name: zastępuje :name =>. Ten skrócony zapis działa tylko wtedy, gdy kluczem jest symbol. Aby uzyskać dostęp do wartości, użyj symbolu wraz z nawiasami kwadratowymi:

person = {name: "Alice", age: 25}

puts person[:name]  # Wyświetla: Alice
puts person[:age]   # Wyświetla: 25

Dodawanie i modyfikowanie wpisów działa w ten sam sposób:

person = {name: "Alice"}

person[:city] = "Paris"
person[:name] = "Bob"

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

Symbole są preferowane jako klucze skrótów, ponieważ porównuje się je szybciej niż ciągi znaków i zajmują mniej pamięci. Ten wzorzec jest często stosowany w kodzie Ruby, więc warto się z nim oswoić.

challenge icon

Wyzwanie

Łatwy

Wczytaj trzy wiersze danych wejściowych:

  1. Markę samochodu (ciąg znaków)
  2. Nazwę modelu (ciąg znaków)
  3. Rok (liczba całkowita)

Utwórz hash o nazwie car, używając skrótowej składni symboli (np. key: value) z następującymi parami klucz-wartość:

  • :brand przypisany do marki samochodu
  • :model przypisany do nazwy modelu
  • :year przypisany do roku (jako liczby całkowitej)

Następnie wykonaj te operacje:

  1. Wypisz wartość klucza :model
  2. Dodaj nowy klucz :color z wartością "black"
  3. Zaktualizuj klucz :year, dodając 1 do jego bieżącej wartości
  4. Wypisz końcowy hash

Na przykład, jeśli dane wejściowe to Toyota, Camry i 2020, dane wyjściowe powinny być następujące:

Camry
{:brand=>"Toyota", :model=>"Camry", :year=>2021, :color=>"black"}

Jeśli dane wejściowe to Honda, Civic i 2018, dane wyjściowe powinny być następujące:

Civic
{:brand=>"Honda", :model=>"Civic", :year=>2019, :color=>"black"}

Jeśli dane wejściowe to Ford, Mustang i 2023, dane wyjściowe powinny być następujące:

Mustang
{:brand=>"Ford", :model=>"Mustang", :year=>2024, :color=>"black"}

Spróbuj swoich sił

# Wczytaj dane wejściowe
brand = gets.chomp
model = gets.chomp
year = gets.chomp.to_i

# TODO: Napisz swój kod poniżej
# 1. Utwórz hash o nazwie 'car', używając skróconej składni symboli z kluczami :brand, :model i :year

# 2. Wypisz wartość klucza :model

# 3. Dodaj nowy klucz :color o wartości "black"

# 4. Zaktualizuj klucz :year, dodając 1 do jego bieżącej wartości

# 5. Wypisz końcowy hash
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