Menu
CoddyTech

访问哈希元素

本课属于 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,这会很有用。

challenge icon

挑战

简单

读取 4 行输入:

  1. 产品名称(字符串)
  2. 价格(浮点数)
  3. 库存数量(整数)
  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
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Ruby 在线编译器