· 1 min read
Script-Tip: Hash mit Standardrückgabewert
Das normale Verhalten bei einem Hash sieht folgendermaßen aus:
[ruby] h = Hash.new # eine neue Hashinstanz erzeugen h[5] # => gibt nil zurück h[‘mein-index’] # => gibt auch nil zurück [/ruby]
Bei der ersten Variante für die Rückgabe von Standardwerten kann über den Konstruktor gelöst werden:
[ruby] h = Hash.new(“DEFAULT_VALUE”) # eine neue Hashinstanz erzeugen h[5] # => gibt “DEFAULT_VALUE” zurück h[‘mein-index’] # => gibt auch “DEFAULT_VALUE” zurück [/ruby]
Die zweite Variante wird über einen Rückgabeblock gelöst:
[ruby] h = Hash.new {|hash, key| (key.respond_to? :to_str) ? “DEFAULT_VALUE” : nil } h[5] # => gibt nil zurück h[‘mein-index’] # => gibt “DEFAULT_VALUE” zurück [/ruby]
Die beiden Varianten unterscheiden sich dadurch, dass nur bei fehlenden String-Indixes der Statndardwert zurückgegeben wird.