Suponha que você tenha um Hash de dados da empresa codificados por seus símbolos de mercado:
data = {
appl: [ "Apple, Inc.",
700.09,
354.24,
705.07,
"Tim Cook" ],
amzn: [ "Amazon, Inc.",
257.47,
256.74,
262.00,
"Jeffrey Bezos" ],
# ...
}
Se você quiser reduzi-lo a uma lista de nomes de empresas e seus respectivos CEOs, o seguinte fará o trabalho:
data.map{ |ticker, details|
[ details.first, details.last ]
}
No entanto, com o suporte do Ruby para desestruturação, você pode tornar a intenção do seu código mais clara à primeira vista:
data.map{ |ticker, (company, price, wk52hi, wk52lo, ceo)|
[ company, ceo ]
}
E uma vez que você não se importa com todos os outros detalhes, você poderia esclarecer ainda mais quando escrever:
data.map{ |ticker, (company, _, _, _, ceo)|
[ company, ceo ]
}