Quelqu'un peut-il me montrer un moyen ruby de vérifier si une clé existe dans un hachage et si ce n'est pas le cas, lui donner une valeur par défaut. Je suppose qu'il existe une seule doublure à moins que ce soit pour le faire, mais je ne sais pas quoi utiliser.
Réponses
Trop de publicités?
Michael Kohl
Points
33345
Si vous avez déjà un hachage, vous pouvez faire ceci :
h.fetch(key, "default value")
Soit vous exploitez le fait qu'une clé inexistante renverra nil
:
h[key] || "default value"
Pour créer des hachages avec des valeurs par défaut, cela dépend de ce que vous voulez faire exactement.
-
Indépendant de la clé et ne sera pas stocké :
h = Hash.new("foo") h[1] #=> "foo" h #=> {}
-
Dépend de la clé et sera stocké :
h = Hash.new { |h, k| h[k] = k * k } h[2] #=> 4 h #=> {2=>4}
nkm
Points
2739
Matthijs
Points
406
phatmann
Points
4153