哈希方法
本课属于 Coddy Ruby 学习旅程的“基础知识”单元。第 76 课,共 88 课。
Ruby 提供了几种内置方法,帮助你更有效地检查和使用哈希。这些方法让你能快速获取有关哈希内容的信息。
keys 方法会返回哈希中所有键组成的数组:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.keys # 输出 name、age 和 city,每个各占一行同样,values 方法会返回包含所有值的数组:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.values # 输出 Alice、25 和 Paris,每个值各占一行要检查某个键是否存在,可以使用 key? 或它的别名 has_key?:
person = {"name" => "Alice", "age" => 25}
puts person.key?("name") # 输出:true
puts person.key?("country") # 输出:falselength 方法会告诉你哈希中有多少个键值对:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.length # 输出:3最后,empty? 会检查哈希中是否有任何键值对:
data = {}
puts data.empty? # 输出:true挑战
简单读取两行输入:
- 一个由逗号分隔的键值对组成的哈希,格式为
key:value(例如,name:Alice,age:25,city:Paris) - 要检查是否存在的键(字符串)
解析第一行输入以创建哈希,然后使用你学过的哈希方法,输出以下信息,每项单独占一行:
- 输出哈希中的每个键(每行一个)
- 输出
---作为分隔符 - 输出哈希中的每个值(每行一个)
- 输出
---作为分隔符 - 输出哈希中键值对的数量
- 输出
---作为分隔符 - 输出
true或false,表示哈希是否为空 - 输出
---作为分隔符 - 输出
true或false,表示第二行输入中的键是否存在于哈希中
例如,如果输入为 name:Alice,age:25,city:Paris 和 age,输出应为:
name
age
city
---
Alice
25
Paris
---
3
---
false
---
true如果输入为 product:Laptop,price:999 和 stock,输出应为:
product
price
---
Laptop
999
---
2
---
false
---
false如果输入为 status:active 和 status,输出应为:
status
---
active
---
1
---
false
---
true亲手试试
# 读取输入
input_string = gets.chomp
key_to_check = gets.chomp
# 解析输入字符串,创建一个哈希表
hash = {}
input_string.split(',').each do |pair|
key, value = pair.split(':')
hash[key] = value
end
# TODO:在下方编写你的代码
# 使用哈希表的方法:
# 1. 输出每个键(每行一个)
# 2. 输出 "---" 作为分隔符
# 3. 输出每个值(每行一个)
# 4. 输出 "---" 作为分隔符
# 5. 输出键值对的数量
# 6. 输出 "---" 作为分隔符
# 7. 如果 hash 为空,输出 true/false
# 8. 输出 "---" 作为分隔符
# 9. 如果 key_to_check 存在于 hash 中,输出 true,否则输出 false这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Ruby 在线编译器