Menu
Coddy logo textTech

Symbols als Hash-Schlüssel

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

Bisher haben Sie Strings als Hash-Keys mit der Hash-Rocket-Syntax verwendet. Ruby-Entwickler verwenden jedoch üblicherweise stattdessen Symbols als Keys, was einen saubereren und effizienteren Ansatz bietet.

Erinnern Sie sich an Symbols von früher? Sie sind leichtgewichtige, unveränderliche Bezeichner, die mit einem Doppelpunkt beginnen. Wenn Symbole als Schlüssel verwendet werden, bietet Ruby eine spezielle Kurzschreibweise an:

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

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

Beachten Sie, wie name: das :name => ersetzt. Diese Kurzschreibweise funktioniert nur, wenn der Schlüssel ein Symbol ist. Um auf Werte zuzugreifen, verwenden Sie das Symbol mit eckigen Klammern:

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

puts person[:name]  # Ausgabe: Alice
puts person[:age]   # Ausgabe: 25

Das Hinzufügen und Ändern von Einträgen funktioniert auf dieselbe Weise:

person = {name: "Alice"}

person[:city] = "Paris"
person[:name] = "Bob"

puts person  # Ausgabe: {:name=>"Bob", :city=>"Paris"}

Symbole werden als Hash-Keys bevorzugt, da sie schneller zu vergleichen sind als Strings und weniger Speicher verbrauchen. Sie werden dieses Muster im gesamten Ruby-Code sehen, daher lohnt es sich, sich damit vertraut zu machen.

challenge icon

Aufgabe

Einfach

Lies drei Zeilen Eingabe ein:

  1. Eine Automarke (String)
  2. Ein Modellname (String)
  3. Ein Jahr (Integer)

Erstelle einen Hash namens car unter Verwendung der Symbol-Kurzschreibweise (z. B. key: value) mit den folgenden Schlüssel-Wert-Paaren:

  • :brand abgebildet auf die Automarke
  • :model abgebildet auf den Modellnamen
  • :year abgebildet auf das Jahr (als Integer)

Führe dann diese Operationen aus:

  1. Gib den Wert des Schlüssels :model aus
  2. Füge einen neuen Schlüssel :color mit dem Wert "black" hinzu
  3. Aktualisiere den Schlüssel :year, indem du 1 zu seinem aktuellen Wert addierst
  4. Gib den finalen Hash aus

Wenn die Eingaben beispielsweise Toyota, Camry und 2020 sind, sollte die Ausgabe wie folgt aussehen:

Camry
{:brand=>"Toyota", :model=>"Camry", :year=>2021, :color=>"black"}

Wenn die Eingaben Honda, Civic und 2018 sind, sollte die Ausgabe wie folgt aussehen:

Civic
{:brand=>"Honda", :model=>"Civic", :year=>2019, :color=>"black"}

Wenn die Eingaben Ford, Mustang und 2023 sind, sollte die Ausgabe wie folgt aussehen:

Mustang
{:brand=>"Ford", :model=>"Mustang", :year=>2024, :color=>"black"}

Spickzettel

Ruby bietet eine Kurzschreibweise zum Erstellen von Hashes mit Symbol-Schlüsseln:

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

Dies entspricht der Verwendung der Hash-Rocket-Syntax mit Symbolen:

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

Um auf Werte aus einem Hash mit Symbol-Schlüsseln zuzugreifen, verwenden Sie eckige Klammern mit dem Symbol:

puts person[:name]  # Ausgabe: Alice
puts person[:age]   # Ausgabe: 25

Das Hinzufügen und Ändern von Einträgen funktioniert genauso wie bei String-Schlüsseln:

person[:city] = "Paris"  # Neues Schlüssel-Wert-Paar hinzufügen
person[:name] = "Bob"    # Bestehenden Wert ändern

Symbole werden als Hash-Schlüssel bevorzugt, da sie schneller zu vergleichen sind als Strings und weniger Speicher verbrauchen.

Probier es selbst

# Eingabe lesen
brand = gets.chomp
model = gets.chomp
year = gets.chomp.to_i

# TODO: Schreibe deinen Code unten
# 1. Erstelle ein Hash namens 'car' unter Verwendung der Symbol-Kurzschreibweise mit 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 1 zum aktuellen Wert addierst

# 5. Gib das finale Hash aus
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