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: 25Wenn du versuchst, einen Schlüssel zu löschen, der nicht existiert, gibt Ruby einfach nil zurück, ohne einen Fehler auszulösen.
Aufgabe
EinfachLies vier Eingabezeilen ein:
- Einen Namen eines Studierenden (Zeichenfolge)
- Eine ursprüngliche Note (Ganzzahl)
- Eine neue Note zum Aktualisieren (Ganzzahl)
- 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:
- Aktualisiere den Schlüssel
"grade"mit dem neuen Notenwert - 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)
- 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 studentDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Logische Operatoren Teil 47Rechner zum Aufteilen der Rechnung
WillkommensnachrichtBenutzereingaben erfassen10FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Methode13Arrays für Fortgeschrittene
Array-Slicing mit BereichenArray-Slicing mit IndizesArray-OperatorenInclude?-Methode2Variablen und Datentypen
Zahlen und VariablenString-DatentypBoolean-DatentypSymbol-DatentypDatentypen überprüfenNamenskonventionenWiederholung – Variablen erstellen5Entscheidungsfindung
If-AnweisungIf - ElseRückblick – Einfacher TaschenrechnerVerschachteltes If - ElseUnless-Anweisung8Schleifen
For-Schleife mit BereichenWhile-SchleifeBreakNextRückblick – FakultätTimes-SchleifeUntil-SchleifeVerschachtelte SchleifenRückblick – Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische KurzschreibweisenRückblick – Einfache MathematikVergleichsoperatoren6Grundlegende Ein- und Ausgabe
Ausgabe mit putsAusgabe mit print und pAusgabe mit VariablenEingabe mit getsDie chomp-MethodeTypumwandlungWiederholung – AltersrechnerWiederholung – Wahr oder FalschÜbe selbstständig: Online-Ruby-Compiler