Hash # has_key?
Provient de Matz
"has_key" has already been deprecated by "key?"
Phrase Cela fait 8 ans depuis, et divers guides de style ont souligné qu'il était «obsolète». Ça a été. Par exemple
Cependant, officiellement, Hash # has_key?
Est toujours la seule méthode utilisée dans l'exemple de code, supprimant Hash # include?
, Hash # key?
, Et Hash # member?
. Oui, c'est une activité qui ne vous fait pas du tout vous sentir «obsolète».
Version japonaise ressemble à ceci,
Version japonnaise
p({1 => "one"}.has_key?(1)) #=> true
p({1 => "one"}.has_key?(2)) #=> false
Version anglaise ressemble à ceci.
Édition anglaise
h = { "a" => 100, "b" => 200 }
h.has_key?("a") #=> true
h.has_key?("z") #=> false
Cependant, cela concerne également Ruby 2.7 et à partir de Ruby 2.8, il semble que l'activité de l'exemple de code sera transférée à d'autres méthodes.
Le dernier commentaire publié sur GitHub ressemble à ceci.
/*
* call-seq:
* hash.include?(key) -> true or false
* hash.has_key?(key) -> true or false
* hash.key?(key) -> true or false
* hash.member?(key) -> true or false
* Methods #has_key?, #key?, and #member? are aliases for \#include?.
*
* Returns +true+ if +key+ is a key in +self+, otherwise +false+:
* h = {foo: 0, bar: 1, baz: 2}
* h.include?(:bar) # => true
* h.include?(:nosuch) # => false
*
«Hash # include?» Cela ressemble à une poussée. Cependant, Hash # has_key?
Est toujours à la deuxième place.
Personnellement, je suis attaché à Hash # has_key?
, Et j'utilise toujours Hash # has_key?
Dans le code abandonné.
Vous pouvez continuer à utiliser Hash # has_key?
, Qui n'a pas encore été officiellement déclaré obsolète
(n'est-ce pas?), Ou vous devriez utiliser d'autres méthodes telles que Hash # key?
C'est ça? Mon cœur tremble.
Si vous voulez vraiment le rendre obsolète, je veux que vous me donniez des conseils dès que possible.
Recommended Posts