🙆‍♀️

[Feature #20815] ネストした Hash の値を取得する Hash#fetch_nested を追加する提案

2024/10/20に公開

[Feature #20815] Fetch for nested hash

  • ネストした Hash の値を取得する Hash#fetch_nested を追加する提案
  • Hash#dig とは違ってキーが見つからない場合は例外が発生することを期待する
data = { user: { profile: { name: "Alice" } } }

# #fetch を使用した場合
data.fetch(:user).fetch(:profile).fetch(:name)
# => "Alice"

# #fetch_nested を使用した場合
data.fetch_nested(:user, :profile, :name)
# => "Alice"
data = { user: { profile: { name: "Alice" } } }

data => user: { profile: { name: } }
p name #=> "Alice"

# error: {:user=>{:profile=>{:name=>"Alice"}}}: key not found: :age (NoMatchingPatternKeyError)
data => user: { profile: { age: } }
  • もうパターンマッチでいいんじゃないかな…
GitHubで編集を提案

Discussion