[Ruby] Hat Hash # has_key einen Schritt näher an den veralteten Beamten?

"Hash # has_key?" Ist von Matz

"has_key" has already been deprecated by "key?"

Satz Seitdem sind 8 Jahre vergangen, und verschiedene Styleguides wiesen darauf hin, dass es "veraltet" sei. Es ist gewesen. Zum Beispiel

Aber offiziell ist "Hash # has_key?" Immer noch die einzige Methode, die im Beispielcode verwendet wird und "Hash # include?", "Hash # key?" Und "Hash # member?" Unterdrückt Ja, es ist eine Aktivität, bei der Sie sich überhaupt nicht "veraltet" fühlen.

Japanische Version sieht so aus,

japanische Version


p({1 => "one"}.has_key?(1)) #=> true
p({1 => "one"}.has_key?(2)) #=> false

Englische Version sieht so aus.

Englische Ausgabe


h = { "a" => 100, "b" => 200 }
h.has_key?("a")   #=> true
h.has_key?("z")   #=> false

Dies liegt jedoch auch an Ruby 2.7, und ab Ruby 2.8 scheint die Aktivität im Beispielcode an andere Methoden übergeben zu werden.

Der auf GitHub veröffentlichte neueste Kommentar sieht folgendermaßen aus.

/*
 *  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? Es fühlt sich an wie ein Push. "Hash # has_key?" Ist jedoch immer noch an zweiter Stelle.

Persönlich bin ich an "Hash # has_key?" Angehängt, und manchmal verwende ich immer noch "Hash # has_key?" In verlassenem Code.

Sie können weiterhin "Hash # has_key?" Verwenden, das noch nicht offiziell als "veraltet" deklariert wurde (nicht wahr?), Oder Sie sollten andere Methoden wie "Hash # key" verwenden Ist es? Mein Herz zittert.

Wenn Sie es wirklich "veraltet" machen wollen, möchte ich, dass Sie mir so schnell wie möglich eine Anleitung geben.

Recommended Posts

[Ruby] Hat Hash # has_key einen Schritt näher an den veralteten Beamten?
[Java Servlet] Die Straße von Senri ist auch ein Schritt zum ersten
So rufen Sie den Hashwert in einem Array in Ruby ab
[Ruby] So rufen Sie den Inhalt des Doppel-Hash ab
[Ruby] Ich möchte die Reihenfolge der Hash-Tabelle umkehren
Möchten Sie wissen, was Ruby n die Potenz von 2 ist? (Machturteil von 2)
Über das Verhalten von Ruby Hash # ==
[IOS] Was tun, wenn das Bild mit einer Farbe gefüllt ist?
[Ruby] Ich möchte nur den Wert des Hash und nur den Schlüssel extrahieren
Ab Java9 werden Klassenkonstruktoren, die primitiven Typen entsprechen, als veraltet markiert.
Wenn Sie einem Argument in einer Ruby-Methode neu zuweisen und dann "super" aufrufen → Das neu zugewiesene wird verwendet