哈希 Hash
Hash 创建/访问、Symbol 键(高效)、merge、fetch、default 默认值
哈希 Hash
Ruby Hash 用 => 或 key: value 语法创建。Symbol 做键最高效。fetch 带默认值,merge 合并。
学完本章你将: 掌握 Hash 创建/访问、Symbol 键、merge/fetch、default。
创建与访问
ruby
# 多种语法
h = { "name" => "小明", "age" => 25 } # 经典
h = { name: "小明", age: 25 } # Symbol 键(推荐)
h = Hash.new(0) # 默认值 0
h[:name] # "小明"
h[:city] # nil(不存在)
h.fetch(:city, "未知") # "未知"(安全取值)
操作
ruby
h = { a: 1, b: 2 }
h[:c] = 3 # 添加
h.delete(:b) # 删除
h.merge({ d: 4 }) # 合并(返回新 Hash)
h.keys # [:a, :c]
h.values # [1, 3]
h.key?(:a) # true
h.value?(1) # true
# 遍历
h.each { |k, v| puts "#{k}: #{v}" }
默认值
ruby
# 默认值——访问不存在的 key 时返回
h = Hash.new(0)
h[:count] += 1 # 第一次 +1 从 0 开始
puts h[:count] # 1
# ⚠️ 默认值用同一个对象时注意
h = Hash.new([]) # 所有缺失 key 共享同一个数组!