· 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.

Back to Blog