Ruby 哈希表(Hash)是一种非常实用的数据结构,它允许我们存储键值对(key-value pairs)。以下是一些 Ruby 哈希表的实用工具:
- 创建哈希表:可以使用大括号
{}
或Hash.new
方法创建一个空的哈希表。例如:
hash1 = {} # 创建一个空哈希表 hash2 = Hash.new # 创建一个空哈希表,并提供一个默认值
- 添加键值对:可以使用
[]
操作符或[]=
操作符向哈希表中添加键值对。例如:
hash1["name"] = "Alice" # 添加一个键值对,键为 "name",值为 "Alice" hash2["age"] = 30 # 添加一个键值对,键为 "age",值为 30
- 访问值:可以使用键来访问哈希表中的值。例如:
name = hash1["name"] # 返回 "Alice" age = hash2["age"] # 返回 30
- 检查键是否存在:可以使用
has_key?
方法检查哈希表中是否存在某个键。例如:
hash1.has_key?("name") # 返回 true hash1.has_key?("address") # 返回 false
- 删除键值对:可以使用
delete
方法删除哈希表中的某个键值对。例如:
hash1.delete("name") # 删除键为 "name" 的键值对,返回被删除的值(即 "Alice")
- 遍历哈希表:可以使用
each
方法遍历哈希表中的所有键值对。例如:
hash1.each do |key, value| puts "#{key}: #{value}" end
这将输出:
name: Alice
- 合并哈希表:可以使用
merge
方法合并两个哈希表。例如:
hash1 = {"name" => "Alice", "age" => 30} hash2 = {"age" => 31, "city" => "New York"} merged_hash = hash1.merge(hash2) # 合并 hash2 到 hash1,返回新的哈希表
这将返回:
{"name" => "Alice", "age" => 31, "city" => "New York"}
注意:在合并哈希表时,如果两个哈希表中有相同的键,那么后一个哈希表中的值将覆盖前一个哈希表中的值。