我正在查看http://ruby-doc.org/core-1.9.3/Hash.html并且似乎没有pop
方法?我想我虽然错过了一些东西......
if (x = d['a']) != nil
d.delete('a')
end
答案 0 :(得分:3)
如果您知道密钥,只需直接使用删除即可 如果哈希不包含密钥,那么你将得到零,否则你将获得存储在那里的任何东西
来自您链接到的文档:
h = { "a" => 100, "b" => 200 }
h.delete("a") #=> 100
h.delete("z") #=> nil
h.delete("z") { |el| "#{el} not found" } #=> "z not found"
还有删除并返回键值对的shift:
hsh = Hash.new
hsh['bb'] = 42
hsh['aa'] = 23
hsh['cc'] = 65
p hsh.shift
=> ["bb", 42]
可以看出,哈希的顺序是插入的顺序,而不是键或值。来自doc
哈希按照插入相应键的顺序枚举其值。