Coleções em Ruby: Arrays e Hashes 📚
Quarta aula do curso de Ruby da OneBitCode
Introdução às Coleções
Coleções são estruturas que agrupam múltiplos valores em uma única unidade. Em Ruby, as principais coleções são:
📦 Arrays
Listas ordenadas de elementos acessados por índice numérico
# Exemplo de array
estados = ["São Paulo", "Rio de Janeiro", "Minas Gerais"]
🗝️ Hashes
Coleções de pares chave-valor (também chamados de dicionários)
# Exemplo de hash
capitais = {
"São Paulo" => "São Paulo",
"Rio de Janeiro" => "Rio de Janeiro",
"Minas Gerais" => "Belo Horizonte"
}
Manipulação de Arrays
Adicionando Elementos
📌 push / <<
Adiciona elementos ao final do array
estados.push("Espírito Santo")
estados << "Rio Grande do Sul"
🔧 insert
Insere elemento em posição específica
estados.insert(0, "Acre") # Insere no início
estados.insert(2, "Bahia") # Insere na posição 2
Acessando Elementos
🔍 Por índice
Acessa elemento pela posição
estados[0] # Primeiro elemento
estados[-1] # Último elemento
estados[1..3] # Intervalo
🏷️ first / last
Métodos para acessar extremidades
estados.first # Primeiro elemento
estados.last # Último elemento
Informações do Array
🔢 count / length
Quantidade de elementos
estados.count # Retorna 5
❓ empty? / include?
Verificações úteis
estados.empty? # false
estados.include?("São Paulo") # true
Removendo Elementos
🗑️ delete_at
Remove por posição
estados.delete_at(0) # Remove "Acre"
↩️ pop / shift
Remove do final/início
estados.pop # Remove último
estados.shift # Remove primeiro
Manipulação de Hashes
Criação e Adição
# Criando hash vazio
capitais = {}
# Adicionando elementos
capitais["Acre"] = "Rio Branco"
capitais["São Paulo"] = "São Paulo"
Acesso e Informações
🔑 keys / values
Lista de chaves ou valores
capitais.keys # ["Acre", "São Paulo"]
capitais.values # ["Rio Branco", "São Paulo"]
📏 size / empty?
Tamanho e verificação
capitais.size # 2
capitais.empty? # false
Remoção de Elementos
capitais.delete("Acre") # Remove o par "Acre"=>"Rio Branco"
Iterações em Coleções
🔄 each
Executa bloco para cada elemento
# Array
estados.each { |estado| puts estado }
# Hash
capitais.each { |estado, capital| puts "#{capital} é capital de #{estado}" }
🔄 map / collect
Transforma elementos em novo array
numeros = [1, 2, 3]
dobrados = numeros.map { |n| n * 2 } # [2, 4, 6]
# Versão que modifica original
numeros.map! { |n| n * 2 }
🔍 select / find_all
Filtra elementos por condição
# Array
pares = [1, 2, 3, 4].select { |n| n.even? } # [2, 4]
# Hash
grandes = capitais.select { |estado, capital| estado.length > 5 }
🎯 Desafios Práticos
- Crie um array com 3 números e exiba cada um elevado ao quadrado
- Crie um hash que armazene 3 pares chave-valor (nome-idade) e exiba frases formatadas
- Dado um hash de produtos e preços, encontre e exiba o produto mais caro
Compartilhe suas soluções nos comentários!
Próximos Passos
Na próxima aula, exploraremos:
- Criação e uso de métodos em Ruby
- Organização de código com métodos
- Introdução a Gems (bibliotecas Ruby)
- Como instalar e usar Gems populares
0 Comentários