Menu
Coddy logo textTech

Dostęp do elementów hasha

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

Teraz, gdy wiesz już, jak tworzyć hasze, musisz pobierać przechowywane w nich wartości. W przeciwieństwie do tablic, w których używasz indeksów liczbowych, hasze używają kluczy, aby uzyskać dostęp do swoich wartości.

Umieść klucz w nawiasach kwadratowych, aby uzyskać odpowiadającą mu wartość:

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

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

Klucz musi dokładnie odpowiadać temu, którego użyto podczas tworzenia skrótu. Jeśli spróbujesz uzyskać dostęp do klucza, który nie istnieje, Ruby zwróci nil:

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

puts person["country"]  # Wypisuje: (nic - nil)

Możesz również użyć metody fetch, która pozwala podać wartość domyślną, gdy brakuje klucza:

person = {"name" => "Alice"}

puts person.fetch("name", "Unknown")     # Wypisuje: Alice
puts person.fetch("country", "Unknown")  # Wypisuje: Unknown

Jest to przydatne, gdy chcesz łagodnie obsługiwać brakujące klucze, zamiast otrzymywać nil.

challenge icon

Wyzwanie

Łatwy

Odczytaj cztery wiersze danych wejściowych:

  1. Nazwa produktu (łańcuch znaków)
  2. Cena (liczba zmiennoprzecinkowa)
  3. Liczba sztuk w magazynie (liczba całkowita)
  4. Klucz do wyszukania (łańcuch znaków)

Utwórz hash o nazwie product z następującymi parami klucz-wartość:

  • "name" przypisany do nazwy produktu
  • "price" przypisany do ceny (jako liczba zmiennoprzecinkowa)
  • "stock" przypisany do liczby sztuk (jako liczba całkowita)

Następnie użyj metody fetch, aby pobrać wartość klucza podanego w czwartym wierszu danych wejściowych. Jeśli klucz nie istnieje, użyj "<code>Not found" jako wartości domyślnej. Wyświetl wynik.

Na przykład, jeśli dane wejściowe to Laptop, 999.99, 15 i price, wynikiem powinno być:

999.99

Jeśli dane wejściowe to Keyboard, 49.99, 100 i name, wynikiem powinno być:

Keyboard

Jeśli dane wejściowe to Mouse, 29.99, 50 i color, wynikiem powinno być:

Not found

Jeśli dane wejściowe to Monitor, 299.0, 8 i stock, wynikiem powinno być:

8

Spróbuj swoich sił

# Wczytaj dane wejściowe
product_name = gets.chomp
price = gets.chomp.to_f
quantity = gets.chomp.to_i
key_to_lookup = gets.chomp

# TODO: Napisz swój kod poniżej
# Utwórz hash o nazwie 'product' z kluczami "name", "price" i "stock"
# Następnie użyj metody fetch, aby pobrać wartość dla key_to_lookup
# Użyj dokładnego tekstu z instrukcji jako wartości domyślnej, jeśli klucz nie istnieje


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