[Ruby] A Hash # has_key? Faire un pas de plus vers la version officielle obsolète?

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

[Ruby] A Hash # has_key? Faire un pas de plus vers la version officielle obsolète?
[Servlet Java] La route de Senri est également une étape vers la première
Comment récupérer la valeur de hachage dans un tableau dans Ruby
[Ruby] Comment récupérer le contenu du double hachage
[Ruby] Je souhaite inverser l'ordre de la table de hachage
Vous voulez savoir ce que Ruby n est la puissance de 2? (Jugement de puissance de 2)
À propos du comportement de ruby Hash # ==
[IOS] Que faire lorsque l'image est remplie d'une seule couleur
[Ruby] Je souhaite extraire uniquement la valeur du hachage et uniquement la clé
À partir de Java9, les constructeurs de classe correspondant aux types primitifs sont marqués comme obsolètes.
Lors de la réaffectation à un argument dans une méthode Ruby puis en appelant `super` → Celui réaffecté est utilisé