Menu
CoddyTech

Hashes ändern

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

Hashes sind nach ihrer Erstellung nicht statisch. Du kannst neue Schlüssel-Wert-Paare hinzufügen, vorhandene Werte aktualisieren und Einträge entfernen, während dein Programm läuft.

Um ein neues Schlüssel-Wert-Paar hinzuzufügen oder einen vorhandenen Wert zu aktualisieren, weise dem Schlüssel mithilfe eckiger 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 vorhandenen Wert

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

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

Um ein Schlüssel-Wert-Paar zu entfernen, verwende die Methode delete mit dem Schlüssel, den du entfernen möchtest:

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

person.delete("city")

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

Die Methode delete gibt den entfernten Wert zurück. Das kann nützlich sein, wenn du ihn verwenden musst:

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

removed_age = person.delete("age")

puts removed_age  # Gibt aus: 25

Wenn du versuchst, 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 Eingabezeilen ein:

  1. Einen Namen eines Studierenden (Zeichenfolge)
  2. Eine ursprüngliche Note (Ganzzahl)
  3. Eine neue Note zum Aktualisieren (Ganzzahl)
  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" ist dem Namen des Studierenden zugeordnet
  • "grade" ist der ursprünglichen Note (als Ganzzahl) zugeordnet

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 mit dem Schlüssel und Wert aus der vierten Eingabe hinzu (der Wert soll eine Zeichenfolge bleiben)
  3. Lösche den Schlüssel "name" aus dem Hash und speichere den entfernten Wert

Gib den entfernten Namen in der ersten Zeile und anschließend den endgültigen Hash in der zweiten Zeile aus.

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

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

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

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

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

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

Probier es selbst

# Eingabe einlesen
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. Zerlege key_value_pair und füge es dem Hash hinzu
# 4. Lösche den Schlüssel "name" und speichere den entfernten Wert

# Den entfernten Namen ausgeben
puts removed_name
# Den endgültigen Hash ausgeben
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

Übe selbstständig: Online-Ruby-Compiler