Wie überprüft man, ob ein bestimmter Schlüssel in einem Hash vorhanden ist oder nicht?
Möchte ich prüfen, ob der "user" - Taste vorhanden ist oder nicht in der session hash. Wie kann ich dies tun?
Hinweis, dass ich nicht wollen, um zu überprüfen, ob der Schlüssel den Wert null ist oder nicht. Ich will einfach nur, um zu überprüfen, ob der "user" Schlüssel vorhanden ist.
InformationsquelleAutor der Frage Mohit Jain | 2010-12-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hash
'skey?
Methode sagt Ihnen, ob ein bestimmter Schlüssel vorhanden ist oder nicht.InformationsquelleAutor der Antwort sepp2k
Während
Hash#has_key?
bekommt den job getan, wie Matz Hinweise hieres wird als veraltet angesehen zugunsten derHash#key?
.InformationsquelleAutor der Antwort Bozhidar Batsov
In der aktuellen Ruby-Versionen Hash-Instanz hat eine
- Taste?
Methode:Verwenden Sie die symbol-Taste oder über einen string-Schlüssel, je nachdem, was Sie in Ihrem hash:
InformationsquelleAutor der Antwort installero
Es ist sehr spät, aber vorzugsweise Symbole verwendet werden sollte, da Schlüssel:
Aber beim erstellen von hash-wenn Sie Strings als Schlüssel, dann wird es die Suche nach der Zeichenfolge im Schlüssel.
Aber beim erstellen von hash übergeben Sie das symbol als Schlüssel dann has_key? sucht den Schlüssel, mit symbol.
Wenn Sie mit Rails, die Sie verwenden können
Hash#with_indifferent_access
um dies zu vermeiden, beidehash[:my_key]
undhash["my_key"]
auf den gleichen DatensatzInformationsquelleAutor der Antwort G.B
Können Sie immer
Hash#key?
um zu überprüfen, ob der Schlüssel in einem hash oder nicht.Wenn nicht, wird Sie zurück
false
InformationsquelleAutor der Antwort Deepak Mahakale