📜  从 ruby 中的哈希数组中获取特定的键值(1)

📅  最后修改于: 2023-12-03 14:49:19.261000             🧑  作者: Mango

从 Ruby 中的哈希数组中获取特定的键值

在 Ruby 中,哈希数组(Hash)是一种常见的数据结构,用于存储键值对。键(key)是唯一的,而值(value)则可以重复。

在使用哈希数组时,经常需要获取特定的键值。下面介绍几种方法。

1. 通过键名获取键值

可以使用 [] 符号和键名(key)来获取键值(value)。

示例代码:

hash = { "name" => "Alice", "age" => 25, "gender" => "female" }
puts hash["name"]  # 输出 "Alice"
puts hash["age"]   # 输出 25
2. 使用 fetch 方法获取键值

fetch 方法提供了一种获取特定键值的方式。与 [] 符号不同的是,当指定的键不存在时,fetch 方法会抛出异常。

示例代码:

hash = { "name" => "Alice", "age" => 25, "gender" => "female" }
puts hash.fetch("name")    # 输出 "Alice"
puts hash.fetch("salary")  # 抛出 KeyError 异常

可以传入第二个参数作为默认值,以避免异常抛出:

hash = { "name" => "Alice", "age" => 25, "gender" => "female" }
puts hash.fetch("salary", "not found")  # 输出 "not found"
3. 使用 select 方法获取键值

select 方法可以按条件筛选出符合要求的键值对。

示例代码:

hash = { "name" => "Alice", "age" => 25, "gender" => "female" }
selected_hash = hash.select { |k, v| k == "name" || v == "female" }
puts selected_hash  # 输出 { "name" => "Alice", "gender" => "female" }
4. 使用 values_at 方法获取多个键值

values_at 方法可以按指定的键获取多个键值,返回一个数组。

示例代码:

hash = { "name" => "Alice", "age" => 25, "gender" => "female" }
puts hash.values_at("name", "age")  # 输出 ["Alice", 25]