Ruby: Converter array em hash

Palavras-chave: ruby, array, hash, splat

Podemos converter facilmente um array com um número de elementos pares para uma hash da seguinte maneira:

array = %w(um 1 dois 2 tres 3)
hash  = Hash[*array]
p hash

Executando o código:

{"tres"=>"3", "um"=>"1", "dois"=>"2"}

Convém prestar atenção no *, que nesse caso recebe o apelido carinhoso de operador splat. Ele vai “abrir” o array para o método [] da hash.

Se esquecermos de usar o * o método vai reclamar dizendo que recebeu um valor ímpar para a hash (e recebeu mesmo, apenas um array).

This entry was posted in Ruby. Bookmark the permalink.