Symbole als Hash-Schlüssel
Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy. Lektion 78 von 88.
Bisher hast du Zeichenketten mit der Hash-Rocket-Syntax als Hash-Schlüssel verwendet. Ruby-Entwickler verwenden jedoch häufig stattdessen Symbole als Schlüssel, was einen übersichtlicheren und effizienteren Ansatz bietet.
Erinnerst du dich an Symbole von früher? Sie sind leichtgewichtige, unveränderliche Bezeichner, die mit einem Doppelpunkt beginnen. Wenn du Symbole als Schlüssel verwendest, bietet Ruby eine spezielle Kurzschreibweise:
person = {name: "Alice", age: 25, city: "Paris"}
puts person # Ausgabe: {:name=>"Alice", :age=>25, :city=>"Paris"}Beachte, wie name: :name => ersetzt. Diese Kurzform funktioniert nur, wenn der Schlüssel ein Symbol ist. Um auf Werte zuzugreifen, verwende das Symbol mit eckigen Klammern:
person = {name: "Alice", age: 25}
puts person[:name] # Gibt aus: Alice
puts person[:age] # Gibt aus: 25Das Hinzufügen und Ändern von Einträgen funktioniert auf dieselbe Weise:
person = {name: "Alice"}
person[:city] = "Paris"
person[:name] = "Bob"
puts person # Gibt aus: {:name=>"Bob", :city=>"Paris"}Symbole werden als Hash-Schlüssel bevorzugt, weil sie sich schneller vergleichen lassen als Zeichenfolgen und weniger Speicher benötigen. Dieses Muster begegnet dir überall im Ruby-Code, daher lohnt es sich, sich damit vertraut zu machen.
Aufgabe
EinfachLies drei Eingabezeilen ein:
- Eine Automarke (Zeichenfolge)
- Einen Modellnamen (Zeichenfolge)
- Ein Jahr (Ganzzahl)
Erstelle mithilfe der Symbol-Kurzschreibweise (z. B. key: value) einen Hash namens car mit den folgenden Schlüssel-Wert-Paaren:
:brandist der Automarke zugeordnet:modelist dem Modellnamen zugeordnet:yearist dem Jahr zugeordnet (als Ganzzahl)
Führe dann diese Operationen aus:
- Gib den Wert des Schlüssels
:modelaus - Füge einen neuen Schlüssel
:colormit dem Wert"black"hinzu - Aktualisiere den Schlüssel
:year, indem du 1 zu seinem aktuellen Wert addierst - Gib den endgültigen Hash aus
Wenn die Eingaben beispielsweise Toyota, Camry und 2020 lauten, sollte die Ausgabe wie folgt aussehen:
Camry
{:brand=>"Toyota", :model=>"Camry", :year=>2021, :color=>"black"}Wenn die Eingaben Honda, Civic und 2018 lauten, sollte die Ausgabe wie folgt aussehen:
Civic
{:brand=>"Honda", :model=>"Civic", :year=>2019, :color=>"black"}Wenn die Eingaben Ford, Mustang und 2023 lauten, sollte die Ausgabe wie folgt aussehen:
Mustang
{:brand=>"Ford", :model=>"Mustang", :year=>2024, :color=>"black"}Probier es selbst
# Eingabe einlesen
brand = gets.chomp
model = gets.chomp
year = gets.chomp.to_i
# TODO: Schreibe deinen Code unten
# 1. Erstelle einen Hash namens 'car' mit der Kurzschreibweise für Symbole und den Schlüsseln :brand, :model und :year
# 2. Gib den Wert des Schlüssels :model aus
# 3. Füge einen neuen Schlüssel :color mit dem Wert "black" hinzu
# 4. Aktualisiere den Schlüssel :year, indem du zu seinem aktuellen Wert 1 addierst
# 5. Gib den fertigen Hash ausDiese 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 Eingabe11Arrays
Arrays erstellenAuf Array-Elemente zugreifenArrays ändernArray-MethodenWiederholung – Produkt-ArrayWiederholung – Umgekehrtes ArrayArray-Kurzschreibweisen14Hashes
Hashes erstellenAuf Hash-Elemente zugreifenHashes ändernHash-MethodenRückblick – Produkt-HashSymbole als Hash-Schlüssel3Operatoren 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