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: 25Dodawanie 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ć.
Wyzwanie
ŁatwyWczytaj trzy wiersze danych wejściowych:
- Markę samochodu (ciąg znaków)
- Nazwę modelu (ciąg znaków)
- 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ść:
:brandprzypisany do marki samochodu:modelprzypisany do nazwy modelu:yearprzypisany do roku (jako liczby całkowitej)
Następnie wykonaj te operacje:
- Wypisz wartość klucza
:model - Dodaj nowy klucz
:colorz wartością"black" - Zaktualizuj klucz
:year, dodając 1 do jego bieżącej wartości - 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 hashTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory — część 2
Operatory logiczne — część 1Operatory logiczne — część 2Powtórka — podstawy logikiOperatory logiczne — część 3Operatory logiczne — część 47Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika2Zmienne i typy danych
Liczby i zmienneTyp danych StringTyp danych BooleanTyp danych SymbolSprawdzanie typów danychKonwencje nazewnictwaPodsumowanie — tworzenie zmiennych5Podejmowanie decyzji
Instrukcja ifIf - elsePowtórka — prosty kalkulatorZagnieżdżone if - elseInstrukcja unless8Pętle
Pętla for z zakresamiPętla whilebreaknextPowtórka – silniaPętla timesPętla untilPętle zagnieżdżonePowtórka – dynamiczne wejście11Tablice
Tworzenie tablicDostęp do elementów tablicyModyfikowanie tablicMetody tablicPowtórka – tablica iloczynówPowtórka – odwrócona tablicaSkróty dotyczące tablic14Hasze
Tworzenie hashyDostęp do elementów hashaModyfikowanie hashyMetody hashyPodsumowanie – hash produktuSymbole jako klucze hashy3Operatory — część 1
Operatory arytmetyczneOperator moduloSkrócone operatory arytmetycznePodsumowanie — prosta matematykaOperatory porównania6Podstawowe wejście i wyjście
Wyświetlanie za pomocą putsWyświetlanie za pomocą print i pWyświetlanie zmiennychWczytywanie za pomocą getsMetoda chompKonwersja typówPodsumowanie – kalkulator wiekuPodsumowanie – prawda czy fałszPoćwicz samodzielnie: Kompilator Ruby online