Sobes.tech
Intern

Was ist ein Hash (HASH) in Ruby?

sobes.tech KI

Antwort von AI

Hash (Hash) in Ruby ist eine geordnete Sammlung von "Schlüssel-Wert"-Paaren, bei denen jeder eindeutige Schlüssel mit einem bestimmten Wert verbunden ist. Die Schlüssel sind in der Regel Symbole (Symbol) oder Strings (String), können aber auch beliebige Objekte sein, die die Methoden eql? und hash implementieren.

Merkmale des Hash:

  • Reihenfolge: Seit Ruby 1.9 behalten Hashes die Einfügereihenfolge der Elemente bei.
  • Zugriff nach Schlüssel: Der Zugriff auf Werte erfolgt schnell über den entsprechenden Schlüssel.
  • Dynamische Größe: Hashes können sich erweitern oder verkleinern, wenn Elemente hinzugefügt oder entfernt werden.
  • Keine doppelten Schlüssel: Jeder Schlüssel ist innerhalb eines Hashes eindeutig.

Beispiele zur Erstellung von Hashes:

# Verwendung eines Literals
person = { "name" => "Alice", "age" => 30 }

# Verwendung von Symbolen als Schlüssel (häufiger und effizienter)
Einstellungen = { :theme => "dunkel", :language => "ru" }

# Notation im Stil von Schlüssel-Wert-Paaren (Ruby 1.9+)
config = { host: "localhost", port: 8080 }

# Mit dem Hash.new Konstruktor
leerer_hash = Hash.new

Hauptoperationen mit Hashes:

Operation Beispiel Beschreibung
Zugriff auf Wert person["name"] Gibt den Wert für den Schlüssel "name" zurück
Hinzufügen/Ändern person["stadt"] = "New York" Fügt ein Paar hinzu oder ändert den Wert für den Schlüssel
Entfernen person.delete("age") Entfernt das Paar mit dem Schlüssel "age"
Größe person.size oder person.length Gibt die Anzahl der Paare im Hash zurück
Schlüsselprüfung person.key?("name") Prüft, ob der Schlüssel im Hash existiert
Wertprüfung person.value?(30) Prüft, ob der Wert im Hash existiert
Iteration `person.each { key, value
Schlüssel person.keys Gibt ein Array aller Schlüssel zurück
Werte person.values Gibt ein Array aller Werte zurück

Beispiel für die Verwendung:

benutzerdaten = {
  name: "Boris",
  age: 45,
  city: "Moskau"
}

# Zugriff auf Daten
puts benutzerdaten[:name]   # => Boris

# Hinzufügen eines neuen Feldes
benutzerdaten[:job] = "Entwickler"

# Ändern des Wertes
benutzerdaten[:age] = 46

# Entfernen eines Feldes
benutzerdaten.delete(:city)

# Iteration über den Hash
benutzerdaten.each do |key, value|
  puts "#{key}: #{value}"
end