Menu
Coddy logo textTech

Modyfikowanie hashy

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

Tablice mieszające nie są statyczne po utworzeniu. W trakcie działania programu możesz dodawać nowe pary klucz-wartość, aktualizować istniejące wartości i usuwać wpisy.

Aby dodać nową parę lub zaktualizować istniejącą wartość, przypisz wartość do klucza za pomocą nawiasów kwadratowych:

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

person["city"] = "Paris"      # Dodaje nową parę klucz-wartość
person["age"] = 26            # Aktualizuje istniejącą wartość

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

Jeśli klucz istnieje, wartość zostaje zastąpiona. Jeśli nie istnieje, do hasza zostaje dodana nowa para.

Aby usunąć parę klucz-wartość, użyj metody delete z kluczem, który chcesz usunąć:

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

person.delete("city")

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

Metoda delete zwraca usuniętą wartość, co może być przydatne, jeśli chcesz jej użyć:

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

removed_age = person.delete("age")

puts removed_age  # Wyświetla: 25

Jeśli spróbujesz usunąć klucz, który nie istnieje, Ruby po prostu zwróci nil bez zgłaszania błędu.

challenge icon

Wyzwanie

Łatwy

Wczytaj cztery wiersze danych wejściowych:

  1. Imię i nazwisko ucznia (ciąg znaków)
  2. Początkową ocenę (liczba całkowita)
  3. Nową ocenę do zaktualizowania (liczba całkowita)
  4. Nową parę klucz-wartość w formacie key:value (np. subject:Math)

Utwórz tablicę asocjacyjną o nazwie student z następującymi początkowymi parami klucz-wartość:

  • "name" przypisany do imienia i nazwiska ucznia
  • "grade" przypisany do początkowej oceny (jako liczby całkowitej)

Następnie wprowadź następujące modyfikacje:

  1. Zaktualizuj klucz "grade", przypisując mu nową ocenę
  2. Dodaj nową parę klucz-wartość, używając klucza i wartości z czwartego wiersza danych wejściowych (wartość powinna pozostać ciągiem znaków)
  3. Usuń klucz "name" z tablicy asocjacyjnej i zapisz usuniętą wartość

Wypisz usunięte imię i nazwisko w pierwszym wierszu, a następnie wypisz końcową tablicę asocjacyjną w drugim wierszu.

Na przykład, jeśli danymi wejściowymi są Alice, 85, 92 i subject:Math, wynikiem powinno być:

Alice
{"grade"=>92, "subject"=>"Math"}

Jeśli danymi wejściowymi są Bob, 70, 75 i status:passing, wynikiem powinno być:

Bob
{"grade"=>75, "status"=>"passing"}

Jeśli danymi wejściowymi są Charlie, 100, 95 i note:excellent, wynikiem powinno być:

Charlie
{"grade"=>95, "note"=>"excellent"}

Spróbuj swoich sił

# Wczytaj dane wejściowe
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp

# TODO: Napisz swój kod poniżej
# 1. Utwórz hash o nazwie 'student' z kluczami "name" i "grade"
# 2. Zaktualizuj klucz "grade" nową wartością oceny
# 3. Sparsuj key_value_pair i dodaj wynik do hasha
# 4. Usuń klucz "name" i zapisz usuniętą wartość

# Wypisz usunięte imię
puts removed_name
# Wypisz końcowy hash
puts student
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