读取键或值
- hash.keys
- hash.values
- hash.to_a
- hash.each { |key, value| ... }
- hash.each_key
- hash.each_value
- hash.each_pair # each方法的别名
查询是否存在键或值
- hash.key?(key)
- hash.has_key?(key)
- hash.include?(key) # 只能用于查询键,不能用于查询值
- hash.member?(key) # 同上
- hash.value?(value)
- hash.has_value?(value)
删除键或值
- hash.delete(key)
- hash.delete(key) { |k| puts "no #{ k }" } # 如果键不存在,则返回区块的执行结果
- hash.delete_if { |key, value| key == "a" } # 将满足条件的删除,如果没有满足条件的可删除,则返回原来的对象
- hash.reject! { |key, value| key == "a" } # 将满足条件的删除,如果没有满足条件的可删除,则返回nil