Ruby Hash类
Hash类
更新:2017/06/15 获取没有的哈希值时返回nil
更新:2018/01/03 增加merge!
更新: 2018/04/05 增加搜索 key
更新: 2018/04/30 增加except, except!
生成 | a = {"one" => 1, "two" => 2} a = {one: 11, two: 22} a = Hash.new() 注: Hash.new生成不带键值 键为“not_key" |
||||||
设定与读取值 |
对策:设定默认值 sample[...] 获取没有的哈希值时返回nil |
||||||
遍历取值 |
|
||||||
读值不报错方法 |
|
||||||
检验是否包含键 | h.key?(key) h.has_key?(key) h.include?(key) h.member?(key) 注:返回bool |
||||||
检验是否包含值 | h.value?(value) h.has_value?(value) |
||||||
搜索指定值的索引 |
key(val) -> object 注意: 虽然有index方法,但是对于hash已经废弃。使用会出警告。 index方法和key方法一样 |
||||||
大小 | h.length h.size |
||||||
删除键 | h.delete(key) | ||||||
Rails扩张的删除 |
except, except! 返回删除后剩余的, 带!的改变自身 |
||||||
满足条件删除 | h.delete_if{ |key, val| ... } h.reject! { |key, val| ... } |
||||||
清空(初始化) | h.clear() | ||||||
合并 | h1.merge(h2) 例: {a: 1}.merge({b: 2}) h1.merge!(h2) |
||||||
哈希嵌套 | h = {a: {b: 1}} h[:a][:b] |
||||||