Menu
CoddyTech

将符号用作哈希键

本课属于 Coddy Ruby 学习旅程的“基础知识”单元。第 78 课,共 88 课。

到目前为止,你一直使用字符串作为哈希键,并采用哈希箭头语法。不过,Ruby 开发者通常会改用符号作为键,这种方式更简洁高效。

还记得之前学过的符号吗?它们是轻量、不可变的标识符,以冒号开头。将符号用作键时,Ruby 提供了一种特殊的简写语法:

person = {name: "Alice", age: 25, city: "Paris"}

puts person  # 输出:{:name=>"Alice", :age=>25, :city=>"Paris"}

注意,name: 替代了 :name =>。这种简写仅在键是符号时有效。要访问值,请使用方括号中的符号:

person = {name: "Alice", age: 25}

puts person[:name]  # 输出:Alice
puts person[:age]   # 输出:25

添加和修改条目的方式相同:

person = {name: "Alice"}

person[:city] = "Paris"
person[:name] = "Bob"

puts person  # 输出:{:name=>"Bob", :city=>"Paris"}

符号常用作哈希键,因为与字符串相比,它们的比较速度更快,占用的内存也更少。你会在 Ruby 代码中经常看到这种写法,所以值得熟悉一下。

challenge icon

挑战

简单

读取三行输入:

  1. 汽车品牌(字符串)
  2. 车型名称(字符串)
  3. 年份(整数)

使用符号简写语法(例如:key: value)创建一个名为 car 的哈希,其中包含以下键值对:

  • :brand 对应汽车品牌
  • :model 对应车型名称
  • :year 对应年份(整数)

然后执行以下操作:

  1. 打印 :model 键的值
  2. 添加一个值为 "black" 的新键 :color
  3. 将 :year 键更新为当前值加 1
  4. 打印最终的哈希

例如,如果输入是 Toyota、Camry 和 2020,输出应为:

Camry
{:brand=>"Toyota", :model=>"Camry", :year=>2021, :color=>"black"}

如果输入是 Honda、Civic 和 2018,输出应为:

Civic
{:brand=>"Honda", :model=>"Civic", :year=>2019, :color=>"black"}

如果输入是 Ford、Mustang 和 2023,输出应为:

Mustang
{:brand=>"Ford", :model=>"Mustang", :year=>2024, :color=>"black"}

亲手试试

# 读取输入
brand = gets.chomp
model = gets.chomp
year = gets.chomp.to_i

# TODO: 在下方编写你的代码
# 1. 使用符号简写语法创建名为 'car' 的哈希,包含 :brand、:model 和 :year 键

# 2. 输出 :model 键的值

# 3. 添加新键 :color,值为 "black"

# 4. 将 :year 键的当前值加 1

# 5. 输出最终的哈希
quiz icon自我测试

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

基础知识中的所有课

自己练习: Ruby 在线编译器