📅  最后修改于: 2023-12-03 14:49:19.261000             🧑  作者: Mango
在 Ruby 中,哈希数组(Hash)是一种常见的数据结构,用于存储键值对。键(key)是唯一的,而值(value)则可以重复。
在使用哈希数组时,经常需要获取特定的键值。下面介绍几种方法。
可以使用 []
符号和键名(key)来获取键值(value)。
示例代码:
hash = { "name" => "Alice", "age" => 25, "gender" => "female" }
puts hash["name"] # 输出 "Alice"
puts hash["age"] # 输出 25
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"
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" }
values_at
方法获取多个键值values_at
方法可以按指定的键获取多个键值,返回一个数组。
示例代码:
hash = { "name" => "Alice", "age" => 25, "gender" => "female" }
puts hash.values_at("name", "age") # 输出 ["Alice", 25]