将符号用作哈希键
本课属于 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 代码中经常看到这种写法,所以值得熟悉一下。
挑战
简单读取三行输入:
- 汽车品牌(字符串)
- 车型名称(字符串)
- 年份(整数)
使用符号简写语法(例如:key: value)创建一个名为 car 的哈希,其中包含以下键值对:
:brand对应汽车品牌:model对应车型名称:year对应年份(整数)
然后执行以下操作:
- 打印
:model键的值 - 添加一个值为
"black"的新键:color - 将
:year键更新为当前值加 1 - 打印最终的哈希
例如,如果输入是 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. 输出最终的哈希这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Ruby 在线编译器