Hashes em Ruby
Hashes são estruturas de dados que permitem o armazenamento de pares de valores-chave. São uma ferramenta fundamental em Ruby para trabalhar com dados de forma organizada e eficiente.
Criando e acessando valores: Link to heading
- Eles podem ser criados usando chaves e separando pares com vírgulas.
- O tamanho do hash pode ser obtido com o método size.
- Os valores podem ser acessados pela sua chave.
Exemplos: Link to heading
capitais = { }
capitais.class # => Hash
capitais = { "Espanha" => "Madri" }
# Add value
capitais["Uruguai"] = "Montevidéu"
puts capitais # => { "Espanha" => "Madri", "Uruguai" => "Montevidéu" }
# Access a specific value
capitais["Espanha"] # => "Madri"
capitais.size # => 2
capitais.empty? # => false
capitais.has_value? "Espanha" # => false
capitais.has_key? "Espanha" # => true
# Invert the hash (convert values to keys)
capitales.invert # => { "Madri" => "Espanha", "Montevidéu" => "Uruguai" }
# Mix two hashes
capitais.merge({"Brasil" => "Brasília"}) # => {"Espanha" => "Madri", "Uruguai" => "Montevidéu", "Brasil" => "Brasília"}
# Transform the values
capitais.transform_values { |x| x.downcase } # => {"Espanha" => "Madri", "Uruguai" => "Montevidéu"}
# Print the content of the hash
puts capitais.map { |k, v| "A capital de #{k} é #{v}" } # A capital de Espanha é Madri, A capital de Uruguai é Montevidéu
# Convert an array to a hash
[["Olá", 13], ["mundo", 14]].to_h # => {"Olá" => 13, "mundo" => 14}
Métodos úteis: Link to heading
- each: percorre o hash e executa um bloco de código para cada par de valores-chave.
- select: Filtra os pares de valores-chave hash e retorna um novo hash com aqueles que atendem a uma condição.
- keys: Obtém um array com as chaves hash.
- valores: Obtém um array com os valores hash.
Exemplo: Link to heading
capitais.each { |k, v| puts "A capital de #{k} é #{v}" } # A capital de Espanha é Madri, A capital de Uruguai é Montevidéu
capitais.select { |k, v| v.length > 10 } # => {"Uruguai" => "Montevidéu"}
capitais.keys # => ["Espanha", "Uruguai"]
capitais.values # => ["Madri", "Montevidéu"]
Hashes são uma ferramenta poderosa para armazenar e organizar dados em Ruby. Sua flexibilidade e eficiência os tornam uma parte fundamental da linguagem.
Continue aprendendo sobre hashes para aproveitar ao máximo o Ruby!