协慌网

登录 贡献 社区

如何检查哈希中是否存在特定密钥?

我想检查会话哈希中是否存在 “用户” 键。我怎样才能做到这一点?

请注意,我不想检查键的值是否为 nil。我只想检查 “用户”是否存在。

答案

Hash key?方法告诉您是否存在给定的密钥。

session.key?("user")

Hash#has_key?正如 Matz 在这里指出的那样,这项工作已经完成, Hash#key? ,它已经过时了吗? 。

hash.key?(some_key)

在最新的 Ruby 版本中,Hash 实例具有key?方法:

{a: 1}.key?(:a)
=> true

确保根据哈希中使用的内容使用符号键或字符串键:

{'a' => 2}.key?(:a)
=> false