Hash#dig 和 Array#dig

版本新特性 / Ruby 2.3

data = { user: { address: { city: "Read" } } }
list = [[1, [2, 3]], [4, [5, 6]]]

# *** before: ***
city_old = data[:user] && data[:user][:address] && data[:user][:address][:city]

# *** in version 2.3: ***
city = data.dig(:user, :address, :city)
value = list.dig(1, 1, 0)   # Array#dig too

puts city
puts value