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