Menu
Coddy logo textTech

Hashes ändern

Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy — Lektion 75 von 88.

Hashes sind nach ihrer Erstellung nicht statisch. Sie können neue Schlüssel-Wert-Paare hinzufügen, bestehende Werte aktualisieren und Einträge entfernen, während Ihr Programm läuft.

Um ein neues Paar hinzuzufügen oder einen bestehenden Wert zu aktualisieren, weisen Sie dem Schlüssel mithilfe von eckigen Klammern einen Wert zu:

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

person["city"] = "Paris"      # Fügt ein neues Schlüssel-Wert-Paar hinzu
person["age"] = 26            # Aktualisiert den bestehenden Wert

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

Wenn der Schlüssel existiert, wird der Wert ersetzt. Wenn er nicht existiert, wird dem Hash ein neues Paar hinzugefügt.

Um ein Schlüssel-Wert-Paar zu entfernen, verwenden Sie die delete-Methode mit dem Schlüssel, den Sie entfernen möchten:

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

person.delete("city")

puts person  # Ausgabe: {"name"=>"Alice", "age"=>25}

Die delete-Methode gibt den Wert zurück, der entfernt wurde, was nützlich sein kann, wenn Sie ihn verwenden müssen:

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

removed_age = person.delete("age")

puts removed_age  # Ausgabe: 25

Wenn Sie versuchen, einen Schlüssel zu löschen, der nicht existiert, gibt Ruby einfach nil zurück, ohne einen Fehler auszulösen.

challenge icon

Aufgabe

Einfach

Lies vier Zeilen Eingabe ein:

  1. Ein Studentenname (String)
  2. Eine Anfangsnote (Integer)
  3. Eine neue Note zum Aktualisieren (Integer)
  4. Ein neues Schlüssel-Wert-Paar im Format key:value (z. B. subject:Math)

Erstelle einen Hash namens student mit den folgenden anfänglichen Schlüssel-Wert-Paaren:

  • "name" zugeordnet dem Studentennamen
  • "grade" zugeordnet der Anfangsnote (als Integer)

Führe dann diese Änderungen durch:

  1. Aktualisiere den Schlüssel "grade" mit dem neuen Notenwert
  2. Füge ein neues Schlüssel-Wert-Paar hinzu, indem du den Schlüssel und den Wert aus der vierten Eingabe verwendest (der Wert soll ein String bleiben)
  3. Lösche den Schlüssel "name" aus dem Hash und speichere den entfernten Wert

Gib den entfernten Namen in der ersten Zeile aus und gib dann den finalen Hash in der zweiten Zeile aus.

Wenn die Eingaben beispielsweise Alice, 85, 92 und subject:Math sind, sollte die Ausgabe wie folgt aussehen:

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

Wenn die Eingaben Bob, 70, 75 und status:passing sind, sollte die Ausgabe wie folgt aussehen:

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

Wenn die Eingaben Charlie, 100, 95 und note:excellent sind, sollte die Ausgabe wie folgt aussehen:

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

Spickzettel

Um ein neues Schlüssel-Wert-Paar hinzuzufügen oder einen bestehenden Wert in einem Hash zu aktualisieren, verwenden Sie eckige Klammern:

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

person["city"] = "Paris"      # Fügt ein neues Schlüssel-Wert-Paar hinzu
person["age"] = 26            # Aktualisiert den bestehenden Wert

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

Wenn der Schlüssel existiert, wird der Wert ersetzt. Wenn er nicht existiert, wird ein neues Paar hinzugefügt.

Um ein Schlüssel-Wert-Paar zu entfernen, verwenden Sie die Methode delete:

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

person.delete("city")

puts person  # Outputs: {"name"=>"Alice", "age"=>25}

Die Methode delete gibt den entfernten Wert zurück:

removed_age = person.delete("age")

puts removed_age  # Outputs: 25

Wenn Sie versuchen, einen Schlüssel zu löschen, der nicht existiert, gibt Ruby nil zurück, ohne einen Fehler auszulösen.

Probier es selbst

# Eingabe lesen
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp

# TODO: Schreibe deinen Code unten
# 1. Erstelle einen Hash namens 'student' mit den Schlüsseln "name" und "grade"
# 2. Aktualisiere den Schlüssel "grade" mit dem neuen Notenwert
# 3. Analysiere das key_value_pair und füge es dem Hash hinzu
# 4. Lösche den Schlüssel "name" und speichere den entfernten Wert

# Ausgabe des entfernten Namens
puts removed_name
# Ausgabe des finalen Hashs
puts student
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen