ruby-on-rails - Comment vérifier si une clé spécifique est présente dans un hachage ou non?




data-structures associative-array (5)

Je veux vérifier si la clé "user" est présente ou non dans le hash de la session. Comment puis-je faire ceci?

Notez que je ne veux pas vérifier si la valeur de la clé est nulle ou non. Je veux juste vérifier si la clé "utilisateur" est présente.


Answers

Alors que Hash#has_key? fait le travail, comme Matz note here , il a été déprécié en faveur de la Hash#key? .

hash.key?(some_key)

Vous pouvez toujours utiliser la Hash#key? pour vérifier si la clé est présente dans un hachage ou non.

Sinon, il vous renverra false

hash =  { one: 1, two:2 }

hash.key?(:one)
#=> true

hash.key?(:four)
#=> false

La key? Hash key? La méthode vous indique si une clé donnée est présente ou non.

session.key?("user")

Dans les dernières versions de Ruby, l'instance Hash possède une key? méthode:

{a: 1}.key?(:a)
=> true

Veillez à utiliser la clé de symbole ou une clé de chaîne en fonction de ce que vous avez dans votre hachage:

{'a' => 2}.key?(:a)
=> false

h.inject({}) { |m, (k,v)| m[k.sub(/^_/,'')] = v; m }






ruby-on-rails ruby data-structures associative-array