推荐答案
// www.javascriptcn.com code example
# 创建一个哈希
hash = { "name" => "Alice", "age" => 25 }
# 访问哈希中的值
puts hash["name"] # 输出: Alice
# 添加新的键值对
hash["city"] = "New York"
# 修改哈希中的值
hash["age"] = 26
# 删除键值对
hash.delete("city")
# 遍历哈希
hash.each do |key, value|
puts "#{key}: #{value}"
end
# 检查哈希中是否包含某个键
puts hash.has_key?("name") # 输出: true
# 获取哈希的所有键
puts hash.keys.inspect # 输出: ["name", "age"]
# 获取哈希的所有值
puts hash.values.inspect # 输出: ["Alice", 26]
# 合并两个哈希
hash2 = { "city" => "Los Angeles" }
merged_hash = hash.merge(hash2)
puts merged_hash.inspect # 输出: {"name"=>"Alice", "age"=>26, "city"=>"Los Angeles"}本题详细解读
哈希的基本概念
在 Ruby 中,哈希(Hash)是一种键值对(key-value pair)的集合。每个键(key)都是唯一的,并且与一个值(value)相关联。哈希类似于其他编程语言中的字典或映射。
创建哈希
哈希可以通过大括号 {} 来创建,键值对之间用 => 或 : 分隔。例如:
hash = { "name" => "Alice", "age" => 25 }或者使用符号作为键:
hash = { name: "Alice", age: 25 }访问哈希中的值
可以通过键来访问哈希中的值:
puts hash["name"] # 输出: Alice
如果键是符号,可以使用符号来访问:
puts hash[:name] # 输出: Alice
添加和修改键值对
可以通过赋值操作符 = 来添加或修改哈希中的键值对:
hash["city"] = "New York" # 添加新的键值对 hash["age"] = 26 # 修改已有的键值对
删除键值对
可以使用 delete 方法来删除哈希中的键值对:
hash.delete("city")遍历哈希
可以使用 each 方法来遍历哈希中的键值对:
hash.each do |key, value|
puts "#{key}: #{value}"
end检查哈希中是否包含某个键
可以使用 has_key? 方法来检查哈希中是否包含某个键:
puts hash.has_key?("name") # 输出: true获取哈希的所有键和值
可以使用 keys 和 values 方法来获取哈希中的所有键和值:
puts hash.keys.inspect # 输出: ["name", "age"] puts hash.values.inspect # 输出: ["Alice", 26]
合并两个哈希
可以使用 merge 方法来合并两个哈希:
hash2 = { "city" => "Los Angeles" }
merged_hash = hash.merge(hash2)
puts merged_hash.inspect # 输出: {"name"=>"Alice", "age"=>26, "city"=>"Los Angeles"}合并时,如果两个哈希中有相同的键,后一个哈希的值会覆盖前一个哈希的值。