Chcę sprawdzić, czy klucz „użytkownika” jest obecny, czy nie w skrócie sesji. W jaki sposób mogę to zrobić?
Zauważ, że nie chcę sprawdzać, czy wartość klucza wynosi zero, czy nie. Chcę tylko sprawdzić, czy klucz „użytkownika” jest obecny.
ruby-on-rails
ruby
data-structures
associative-array
Mohit Jain
źródło
źródło
Chociaż
Hash#has_key?
praca jest wykonywana, jak zauważa tutaj Matz , została wycofana na korzyśćHash#key?
.źródło
W najnowszych wersjach Ruby instancja Hash ma
key?
metodę:Pamiętaj, aby użyć klucza symbolu lub klucza łańcucha w zależności od tego, co masz w swoim skrócie:
źródło
Jest bardzo późno, ale najlepiej użyć symboli jako klucza:
Ale podczas tworzenia skrótu, jeśli podasz ciąg jako klucz, wówczas wyszuka ciąg w kluczach.
Ale podczas tworzenia skrótu przekazujesz symbol jako klucz, a następnie has_key? przeszuka klucze za pomocą symbolu.
Jeśli używasz Railsów, możesz użyć,
Hash#with_indifferent_access
aby tego uniknąć; zarównohash[:my_key]
ihash["my_key"]
skieruje do tego samego rekorduźródło
Hash#with_indifferent_access
aby tego uniknąć; oba:my_key
i"my_key"
będzie wskazywać na ten sam rekordZawsze możesz użyć,
Hash#key?
aby sprawdzić, czy klucz jest obecny w haszu, czy nie.Jeśli nie, to ci zwróci
false
źródło
Inny sposób jest tutaj
źródło
W Railsach 5 has_key? Metoda sprawdza, czy klucz istnieje w haszowaniu. Składnia do jej użycia to:
źródło