Ich möchte überprüfen, ob der "Benutzer" -Schlüssel im Sitzungs-Hash vorhanden ist oder nicht. Wie kann ich das machen?
Beachten Sie, dass ich nicht überprüfen möchte, ob der Wert des Schlüssels Null ist oder nicht. Ich möchte nur überprüfen, ob der "Benutzer" -Schlüssel vorhanden ist.
ruby-on-rails
ruby
data-structures
associative-array
Mohit Jain
quelle
quelle
Während
Hash#has_key?
die Arbeit erledigt wird, wie Matz hier feststellt , wurde sie zugunsten von abgelehntHash#key?
.quelle
In den neuesten Ruby-Versionen verfügt die Hash-Instanz über eine
key?
Methode:Stellen Sie sicher, dass Sie den Symbolschlüssel oder einen String-Schlüssel verwenden, je nachdem, was Sie in Ihrem Hash haben:
quelle
Es ist sehr spät, aber vorzugsweise sollten Symbole als Schlüssel verwendet werden:
Wenn Sie jedoch beim Erstellen eines Hashs eine Zeichenfolge als Schlüssel übergeben, wird in Zeichen nach der Zeichenfolge gesucht.
Aber wenn Sie einen Hash erstellen, übergeben Sie das Symbol als Schlüssel und dann has_key? sucht die Schlüssel mit dem Symbol.
Wenn Sie Rails verwenden, können Sie dies
Hash#with_indifferent_access
vermeiden. beidehash[:my_key]
undhash["my_key"]
zeigen auf den gleichen Datensatzquelle
Hash#with_indifferent_access
vermeiden. beide:my_key
und"my_key"
wird auf den gleichen Rekord verweisenSie können jederzeit
Hash#key?
überprüfen, ob der Schlüssel in einem Hash vorhanden ist oder nicht.Wenn nicht, wird es Sie zurückgeben
false
quelle
Ein anderer Weg ist hier
quelle
In Rails 5 ist der has_key? Die Methode prüft, ob der Schlüssel im Hash vorhanden ist. Die Syntax dafür lautet:
quelle