Ruby 哈希(Hash)是一种可变的、无序的键值对集合
创建哈希:
hash = {} # 空哈希
hash = {key1: value1, key2: value2} # 带有键值对的哈希
hash = Hash.new # 默认值为 nil 的哈希
hash = Hash.new(default_value) # 使用默认值的哈希
访问哈希元素:
hash[key] # 返回键对应的值,如果不存在则返回 nil
修改哈希元素:
hash[key] = new_value # 修改键对应的值
删除哈希元素:
hash.delete(key) # 删除键对应的元素,返回被删除的值
hash.delete_if { |key, value| condition } # 删除满足条件的元素
检查哈希中是否存在某个键:
hash.has_key?(key) # 返回 true 如果存在,否则返回 false
hash.key?(key) # Ruby 3.0+ 中推荐使用此方法
获取哈希的长度:
hash.length # 返回哈希中的元素个数
遍历哈希:
hash.each { |key, value| block } # 遍历哈希中的每个元素
hash.each_key { |key| block } # 只遍历键
hash.each_value { |value| block } # 只遍历值
hash.each_pair { |key, value| block } # 遍历键值对
合并哈希:
hash1.merge(hash2) # 返回一个新的哈希,包含 hash1 和 hash2 的所有元素,如果键冲突则使用 hash2 的值
hash1.merge!(hash2) # 修改 hash1,使其包含 hash1 和 hash2 的所有元素,如果键冲突则使用 hash2 的值
转换哈希:
hash.to_a # 将哈希转换为键值对数组
hash.to_s # 将哈希转换为字符串
hash.inspect # 返回哈希的字符串表示形式
哈希的常用方法:
hash[:key] # 使用符号作为键访问哈希元素
hash[key] = value # 同时设置键和值
hash.has_value?(value) # 检查哈希中是否存在某个值
hash.values # 返回哈希中所有值的数组
hash.keys # 返回哈希中所有键的数组
hash.empty? # 检查哈希是否为空
hash.size # 返回哈希中的元素个数(与 length 等价)
这些实用方法可以帮助您更有效地操作 Ruby 哈希。