访问哈希元素
本课属于 Coddy Ruby 学习旅程的“基础知识”单元。第 74 课,共 88 课。
现在你已经知道如何创建哈希,接下来需要获取其中存储的值。与使用数字索引的数组不同,哈希使用键来访问对应的值。
将键放在方括号内,即可获取对应的值:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person["name"] # 输出:Alice
puts person["age"] # 输出:25键必须与你创建哈希时使用的键完全一致。如果你尝试访问不存在的键,Ruby 会返回 nil:
person = {"name" => "Alice", "age" => 25}
puts person["country"] # 输出:(没有内容,nil)你也可以使用 fetch 方法,在键缺失时提供一个默认值:
person = {"name" => "Alice"}
puts person.fetch("name", "Unknown") # 输出:Alice
puts person.fetch("country", "Unknown") # 输出:Unknown如果你想优雅地处理缺失的键,而不是得到 nil,这会很有用。
挑战
简单读取 4 行输入:
- 产品名称(字符串)
- 价格(浮点数)
- 库存数量(整数)
- 要查找的键(字符串)
创建一个名为 product 的哈希,其中包含以下键值对:
"name"对应产品名称"price"对应价格(浮点数)"stock"对应数量(整数)
然后,使用 fetch 方法获取与第 4 行输入提供的键对应的值。如果键不存在,则使用 "<code>Not found" 作为默认值。打印结果。
例如,如果输入为 Laptop、999.99、15 和 price,输出应为:
999.99如果输入为 Keyboard、49.99、100 和 name,输出应为:
Keyboard如果输入为 Mouse、29.99、50 和 color,输出应为:
Not found如果输入为 Monitor、299.0、8 和 stock,输出应为:
8亲手试试
# 读取输入
product_name = gets.chomp
price = gets.chomp.to_f
quantity = gets.chomp.to_i
key_to_lookup = gets.chomp
# TODO:在下方编写你的代码
# 创建一个名为 'product' 的哈希表,键为 "name"、"price" 和 "stock"
# 然后使用 fetch 方法获取 key_to_lookup 对应的值
# 如果键不存在,就将说明中的原文用作默认值
# 输出结果
puts result这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Ruby 在线编译器