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!

<< Arrays em Ruby Condicionais em Ruby >>