Ruby 2.3 вводит новый метод в Array
и Hash
, называемый dig
. Примеры, которые я видел в сообщениях в блоге о новом выпуске, изобретательны и запутаны:
# Hash#dig
user = {
user: {
address: {
street1: '123 Main street'
}
}
}
user.dig(:user, :address, :street1) # => '123 Main street'
# Array#dig
results = [[[1, 2, 3]]]
results.dig(0, 0, 0) # => 1
Я не использую тройные вложенные плоские массивы. Какой реалистичный пример того, как это было бы полезно?
UPDATE
Оказывается, эти методы решают один из наиболее часто задаваемых вопросов Ruby. Ниже приведенные вопросы имеют примерно 20 дубликатов, все из которых решаются с помощью dig
:
Ruby Style: как проверить, существует ли вложенный элемент хеша