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 哈希。