Valores padrão e mesclagem
fetch, merge, dig.
Valores padrão e mesclagem é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.
O Problema com nil
Ler uma chave ausente retorna nil, o que pode causar surpresas em cálculos ou na lógica. O Ruby oferece formas mais seguras de lidar com a ausência.
h = { a: 1 }
puts h[:b].inspectfetch para Acesso Seguro
fetch retorna o valor ou gera um erro claro se a chave estiver ausente. Use-o quando uma chave for obrigatória.
h = { name: "Ada" }
puts h.fetch(:name)fetch com um Valor Padrão
Forneça a fetch um segundo argumento como alternativa usada somente quando a chave estiver ausente.
h = { name: "Ada" }
puts h.fetch(:age, 0)
puts h.fetch(:name, "Unknown")fetch com um Bloco
Passe um bloco para calcular a alternativa sob demanda. O bloco é executado somente quando não há correspondência.
h = {}
puts h.fetch(:x) { "computed default" }Tabela de Dispersão com um Valor Padrão
Hash.new(default) retorna o valor padrão para qualquer chave ausente, em vez de nil. O valor padrão é compartilhado, então prefira essa forma para valores imutáveis simples.
counts = Hash.new(0)
counts[:a] += 1
counts[:a] += 1
puts counts[:a]
puts counts[:b]Valor Padrão com um Bloco
Hash.new { |hash, key| ... } calcula um novo valor padrão para cada chave, sendo ideal para agrupar elementos em listas.
groups = Hash.new { |h, k| h[k] = [] }
groups[:fruit] << "apple"
groups[:fruit] << "pear"
puts groups[:fruit].inspectContando com Valores Padrão
Um valor padrão igual a 0 torna a contagem de palavras simples e organizada.
words = ["a", "b", "a", "a"]
count = Hash.new(0)
words.each { |w| count[w] += 1 }
puts countCombinando Tabelas de Dispersão
merge combina duas tabelas de dispersão em uma nova. Em caso de conflito, as chaves da segunda tabela vencem.
defaults = { color: "red", size: "M" }
user = { color: "blue" }
puts defaults.merge(user)Combinando com um Bloco
Passe um bloco para merge a fim de resolver conflitos, por exemplo somando os valores.
a = { x: 1, y: 2 }
b = { y: 3, z: 4 }
puts a.merge(b) { |key, old, new| old + new }Acesso Aninhado Seguro com dig
dig lê tabelas de dispersão aninhadas com segurança, retornando nil se algum nível estiver ausente, em vez de causar uma falha.
data = { user: { address: { city: "London" } } }
puts data.dig(:user, :address, :city)
puts data.dig(:user, :phone, :home).inspectCombinando as Ferramentas
Use valores padrão e merge em conjunto para criar uma configuração a partir de valores básicos e substituições.
base = { retries: 3, timeout: 30 }
options = base.merge(timeout: 60)
puts options.fetch(:timeout)Verificação rápida
Verifique seus conhecimentos sobre valores padrão e combinação de tabelas.
Recapitulação
Agora você lida com dados ausentes de forma adequada:
fetchcom valor padrão, bloco ou erro rigorosoHash.new(0)e valores padrão com bloco para contagem e agrupamentomergecom blocos para conflitosdigpara acesso aninhado seguro
Próximo curso: intervalos e enumeração.
c = Hash.new(0)
c[:hits] += 1
puts c[:hits]Perguntas Frequentes
A aula “Valores padrão e mesclagem” é grátis?
Sim — o texto completo de “Valores padrão e mesclagem” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.
O que vou aprender em “Valores padrão e mesclagem”?
fetch, merge, dig. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Ruby Academy?
Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Valores padrão e mesclagem”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Ruby Academy?
Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Símbolos versus strings
- Criando e lendo hashes
- Iteração em hashes
- Valores padrão e mesclagem