Ruby 哈希(Hash)学习笔记
哈希(Hash)是 Ruby 中一种非常有用的数据类型,它提供了一种简单快捷的方式来存储和访问 key-value (键值对) 对象。
创建哈希
可以通过以下两种方式来创建哈希:
直接定义
rubyCopy Code# 创建一个哈希并赋值给变量 person
person = {"name" => "张三", "age" => 20, "gender" => "男"}
# 访问哈希中的值
puts person["name"] # 输出:张三
puts person["age"] # 输出:20
# 更新哈希中的值
person["age"] = 25
# 添加新的键值对
person["address"] = "北京市"
# 删除键值对
person.delete("gender")
使用 Hash 类的 new 方法
rubyCopy Code# 创建一个空的哈希并赋值给变量 scores
scores = Hash.new
# 添加键值对
scores["小明"] = 90
scores["小红"] = 85
# 访问哈希中的值
puts scores["小明"] # 输出:90
puts scores["小红"] # 输出:85
迭代哈希
使用 each 方法可以对哈希进行迭代,以便访问每个键值对。
rubyCopy Code# 定义一个哈希
fruit_prices = {"苹果" => 3.0, "香蕉" => 2.5, "橙子" => 4.0}
# 迭代哈希并输出每个键值对
fruit_prices.each do |fruit, price|
puts "#{fruit} 的价格为 #{price} 元"
end
哈希的默认值
可以通过 Hash 类的 new 方法来设置哈希的默认值,这样当访问哈希中不存在的键时将返回默认值,而不是 nil。
rubyCopy Code# 定义一个带有默认值的哈希
grades = Hash.new(0)
# 更新哈希中的值
grades["小明"] = 90
grades["小红"] = 85
# 访问哈希中不存在的键
puts grades["小刚"] # 输出:0
哈希的常用方法
size
或length
: 返回哈希中键值对的数量keys
: 返回哈希中所有的键values
: 返回哈希中所有的值has_key?
或key?
: 检查哈希中是否有指定的键has_value?
或value?
: 检查哈希中是否有指定的值
示例
下面是使用哈希来存储和操作学生信息的示例:
rubyCopy Code# 创建一个带有默认值的哈希
students = Hash.new { |hash, key| hash[key] = {} }
# 添加学生信息
students["小明"]["年龄"] = 12
students["小明"]["语文成绩"] = 90
students["小明"]["数学成绩"] = 85
# 迭代所有学生
students.each do |name, info|
puts "姓名:#{name}"
puts "年龄:#{info['年龄']}"
puts "语文成绩:#{info['语文成绩']}"
puts "数学成绩:#{info['数学成绩']}"
puts '-' * 20
end
输出:
Copy Code姓名:小明
年龄:12
语文成绩:90
数学成绩:85
--------------------