【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
我想检查会话哈希中是否存在“用户”密钥。 我怎样才能做到这一点?
请注意,我不想检查密钥的值是否为零。 我只想检查“用户” 键是否存在。
#1楼
虽然Hash#has_key?
完成工作,正如Matz 在这里指出的那样,它已被弃用以支持Hash#key?
。
hash.key?(some_key)
#2楼
这是很晚但最好使用符号作为关键:
my_hash = {}
my_hash[:my_key] = 'value'
my_hash.has_key?("my_key")
=> false
my_hash.has_key?("my_key".to_sym)
=> true
my_hash2 = {}
my_hash2['my_key'] = 'value'
my_hash2.has_key?("my_key")
=> true
my_hash2.has_key?("my_key".to_sym)
=> false
但是当你将字符串作为键传递时创建哈希,那么它将在键中搜索字符串。
但是在创建哈希时,你将符号作为键传递给has_key? 将使用符号搜索键。
如果你使用的是Rails,你可以使用Hash#with_indifferent_access
来避免这种情况; hash[:my_key]
和hash["my_key"]
都指向同hash["my_key"]
记录
#3楼
在最新的Ruby版本中,Hash实例有一个key?
方法:
{a: 1}.key?(:a)
=> true
请务必使用符号键或字符串键,具体取决于哈希中的内容:
{'a' => 2}.key?(:a)
=> false
#4楼
你总是可以使用Hash#key?
检查密钥是否存在于散列中。
如果不是,它会让你false
hash = { one: 1, two:2 }
hash.key?(:one)
#=> true
hash.key?(:four)
#=> false
#5楼
Hash
的key?
方法告诉您是否存在给定的密钥。
session.key?("user")
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3153439