5.2. Wartości domyślne w haszach

Podziękowania dla Bena Giddingsa

Problem

Wykorzystując hasz, nie chcemy otrzymywać wartości nil każdorazowo, gdy odwołujemy się do nieistniejącego klucza. Chcielibyśmy w zamian otrzymywać wartość bardziej wygodną dla aplikacji, być może obliczaną dynamicznie.

Rozwiązanie

Jeżeli nie postanowimy inaczej, domyślną wartością dla nieistniejącego klucza w haszu jest nil:

h = Hash.new
h[1]                                           # => nil
h['czy ten klucz istnieje?']                   # => nil

Domyślną wartość dla nieistniejącego klucza możemy zmienić na dwa sposoby. Jeśli ma być ona identyczna dla wszystkich kluczy, należy ją podać jako argument wywołania konstruktora hasza:

h = Hash.new("brak")
h[1]                                           # => "brak"
h['czy ten klucz istnieje?']                   # => "brak"

Jeśli natomiast ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.