Je veux vérifier si la clé "user" est présente ou non dans le hash de la session. Comment puis-je le faire ?
Notez que je ne veux pas vérifier si la valeur de la clé est nulle ou non. Je veux simplement vérifier si l'utilisateur clé est présent.
Je veux vérifier si la clé "user" est présente ou non dans le hash de la session. Comment puis-je le faire ?
Notez que je ne veux pas vérifier si la valeur de la clé est nulle ou non. Je veux simplement vérifier si l'utilisateur clé est présent.
Alors que Hash#has_key?
fait le travail, comme le note Matz ici il a été déprécié au profit de Hash#key?
.
hash.key?(some_key)
Dans les dernières versions de Ruby, l'instance de hachage a une valeur key?
méthode :
{a: 1}.key?(:a)
=> true
Veillez à utiliser la clé de symbole ou la clé de chaîne en fonction de ce que vous avez dans votre hachage :
{'a' => 2}.key?(:a)
=> false
Il existe apparemment depuis la version 1.6 de Ruby : ruby-doc.com/docs/ProgrammingRuby/html/ (peut-être plus tôt, je ne sais pas où vérifier les documents)
Il est très tard, mais il est préférable d'utiliser des symboles comme clé :
my_hash = {}
my_hash[:my_key] = 'value'
my_hash.has_key?("my_key")
=> false
my_hash.has_key?("my_key".to_sym)
=> true
my_hash2 = {}
my_hash2['my_key'] = 'value'
my_hash2.has_key?("my_key")
=> true
my_hash2.has_key?("my_key".to_sym)
=> false
Mais lors de la création d'un hash, si vous passez une chaîne de caractères comme clé, il cherchera la chaîne dans les clés.
Mais lorsque vous créez un hash, vous passez un symbole comme clé, alors has_key ? recherchera les clés en utilisant le symbole.
Si vous utilisez Rails, vous pouvez utiliser Hash#with_indifferent_access
pour éviter cela ; les deux hash[:my_key]
et hash["my_key"]
pointera vers le même enregistrement
Si vous utilisez Rails, vous pouvez utiliser Hash#with_indifferent_access
pour éviter cela ; les deux :my_key
et "my_key"
pointera vers le même enregistrement
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.