Ruby 配列やハッシュの [] と dig
要素を取得したい配列やハッシュがnilになる可能性がある場合は、digを使うとよい。
配列
code:ruby
p nil&.2 #=> syntax error p nil&.[](2) #=> nil # これでもOKだが分かりにくい # dig ならぼっち演算子も使いやすい
p array&.dig(2) #=> "cherry" ハッシュ
code:ruby
hash = { user: { name: "Alice", age: 20 } }
# [] では hash が nil だとエラーになる
p nil:user:name #=> undefined method `[]' for nil:NilClass (NoMethodError) # ぼっち演算子で hash が nil のときは nil を返す(これでもOKだが分かりにくい)
p hash&.[](:user)&.[](:name) #=> "Alice" p nil&.[](:user)&.[](:name) #=> nil # dig ならぼっち演算子も使いやすい
p hash.dig(:user, :name) #=> "Alice" p nil&.dig(:user, :name) #=> nil