Ruby 2.3 introduce un nuovo metodo su Array
e Hash
chiamato . Gli esempi che ho visto in post del blog circa la nuova release sono artificiosa e complicata:Come utilizzare "array # dig" e "Hash # dig" introdotto in Ruby 2.3?
# 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
non sto usando gli array piatto triplo nidificati. Qual è un esempio realistico di come sarebbe utile?
UPDATE
Si scopre questi metodi risolvono una delle domande più comuni di Ruby-poste. Le domande sotto hanno qualcosa come 20 duplicati, che sono tutti risolti utilizzando :
How to avoid NoMethodError for missing elements in nested hashes, without repeated nil checks?
Ruby Style: How to check whether a nested hash element exists
Hai solo analizzato alcune JSON è un esempio molto realistico ... – ndn
@ ndn L'utente normale 'utente [: utente] [: indirizzo] [: via1]' ha un numero di caratteri inferiore a 'user.dig (: user,: address,: street1)' e dà lo stesso risultato. –
@JesseSielaff Non sono la stessa cosa. '[] [] []' fallirà con un errore se nessuna delle chiavi non esiste. 'dig' non fallirà, restituirà' nil'. – meagar