Menu
Coddy logo textTech

Metody hashy

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

Ruby udostępnia kilka wbudowanych metod, które pomagają skuteczniej sprawdzać hasze i pracować z nimi. Dzięki tym metodom możesz szybko uzyskać informacje o zawartości hasza.

Metoda keys zwraca tablicę wszystkich kluczy w haszu:

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

puts person.keys  # Wyświetla: name, age, city

Podobnie metoda values zwraca tablicę wszystkich wartości:

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

puts person.values  # Wyświetla: Alice, 25, Paris

Aby sprawdzić, czy istnieje określony klucz, użyj key? lub jego aliasu has_key?:

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

puts person.key?("name")     # Wyświetla: true
puts person.key?("country")  # Wyświetla: false

Metoda length informuje, ile par klucz-wartość zawiera hash:

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

puts person.length  # Wyświetla: 3

Na koniec empty? sprawdza, czy hash zawiera jakiekolwiek pary:

data = {}
puts data.empty?  # Wypisuje: true
challenge icon

Wyzwanie

Łatwy

Wczytaj dwa wiersze danych wejściowych:

  1. Hash zapisany jako oddzielone przecinkami pary klucz-wartość w formacie key:value (np. name:Alice,age:25,city:Paris)
  2. Klucz, którego istnienie należy sprawdzić (ciąg znaków)

Przeanalizuj pierwsze dane wejściowe, aby utworzyć hash, a następnie użyj poznanych metod hashy, aby wyświetlić poniższe informacje, każdą w osobnym wierszu:

  1. Wyświetl każdy klucz w hashu (jeden w każdym wierszu)
  2. Wyświetl --- jako separator
  3. Wyświetl każdą wartość w hashu (jedną w każdym wierszu)
  4. Wyświetl --- jako separator
  5. Wyświetl liczbę par klucz-wartość w hashu
  6. Wyświetl --- jako separator
  7. Wyświetl true lub false, wskazując, czy hash jest pusty
  8. Wyświetl --- jako separator
  9. Wyświetl true lub false, wskazując, czy klucz z drugiego wiersza danych wejściowych istnieje w hashu

Na przykład, jeśli dane wejściowe to name:Alice,age:25,city:Paris i age, wynikiem powinno być:

name
age
city
---
Alice
25
Paris
---
3
---
false
---
true

Jeśli dane wejściowe to product:Laptop,price:999 i stock, wynikiem powinno być:

product
price
---
Laptop
999
---
2
---
false
---
false

Jeśli dane wejściowe to status:active i status, wynikiem powinno być:

status
---
active
---
1
---
false
---
true

Spróbuj swoich sił

# Wczytaj dane wejściowe
input_string = gets.chomp
key_to_check = gets.chomp

# Przetwórz ciąg wejściowy, aby utworzyć hash
hash = {}
input_string.split(',').each do |pair|
  key, value = pair.split(':')
  hash[key] = value
end

# TODO: Napisz swój kod poniżej
# Użyj metod hash, aby:
# 1. Wypisać każdy klucz (po jednym w wierszu)
# 2. Wypisać "---" jako separator
# 3. Wypisać każdą wartość (po jednej w wierszu)
# 4. Wypisać "---" jako separator
# 5. Wypisać liczbę par klucz-wartość
# 6. Wypisać "---" jako separator
# 7. Wypisać true/false w zależności od tego, czy hash jest pusty
# 8. Wypisać "---" jako separator
# 9. Wypisz true/false w zależności od tego, czy key_to_check istnieje w 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