0Pricing
DevOps Bootcamp · Aula

Mesclagem profunda com mergeOverwrite e dict

Componha valores estruturados programaticamente.

Mesclagem profunda com mergeOverwrite e dict é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 1 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 DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

Criando mapas nos modelos

Às vezes, você precisa montar um mapa dentro de um modelo. A função dict cria um a partir de pares alternados de chaves e valores.

{{ $cfg := dict "level" "info" "json" true }}

Por que combinar mapas

Geralmente, você tem padrões do pacote e substituições do usuário e quer um único mapa combinado. É exatamente isso que uma função merge produz.

Mesclagem superficial

A função merge copia chaves dos mapas de origem para um destino, mas mantém o valor do destino sempre que uma chave já existe.

{{ $out := merge $user $defaults }}

merge prioriza o destino

Com merge, o primeiro argumento vence quando há conflito entre chaves, por isso a função é ideal quando a entrada do usuário deve substituir os seus valores padrão.

Conheça mergeOverwrite

A função mergeOverwrite faz o oposto: os mapas de origem posteriores substituem o destino, adicionando valores sobre ele.

{{ $out := mergeOverwrite $defaults $user }}

Profunda, não superficial

Os dois auxiliares fazem a mesclagem recursivamente: os mapas aninhados são combinados chave por chave, em vez de toda a subárvore ser substituída de uma só vez.

Aviso sobre mutação

Cuidado: merge e mergeOverwrite alteram o primeiro argumento diretamente. Passe um dict novo se precisar manter o original intacto.

{{ $base := dict }}{{ $r := mergeOverwrite $base .Values.extra }}

Um padrão de valores padrão em camadas

Um padrão comum é começar com um dict de valores padrão e depois adicionar os valores do usuário por cima, para que as chaves não definidas usem um valor de reserva com segurança.

{{ $merged := mergeOverwrite (dict "port" 80) .Values.service }}

Lendo valores mesclados

Depois de mesclar, você trata o resultado como qualquer mapa e obtém as chaves com dot ou com a função index, como de costume.

{{ $merged.port }}

Serializando o resultado

Para emitir uma estrutura mesclada como YAML, encaminhe-a por toYaml e nindent, para que o bloco fique com o recuo correto.

{{ toYaml $merged | nindent 4 }}

Selecionando uma chave

Quando o nome de uma chave é dinâmico ou contém caracteres incomuns, acesse o mapa com a função index em vez do acesso por ponto.

{{ index $merged "log-level" }}

Verificação rápida

Verificação rápida sobre a direção da substituição.

Recapitulação

Você conheceu dict para criar mapas, merge para manter as chaves do destino e mergeOverwrite para permitir que os valores posteriores prevaleçam, com todas as mesclagens ocorrendo em profundidade. 🎉

Perguntas Frequentes

A aula “Mesclagem profunda com mergeOverwrite e dict” é grátis?

Sim — o texto completo de “Mesclagem profunda com mergeOverwrite e dict” é 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 DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “Mesclagem profunda com mergeOverwrite e dict”?

Componha valores estruturados programaticamente. Você pratica DevOps Bootcamp 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 DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp 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 1 de 4.

Quanto tempo leva a aula “Mesclagem profunda com mergeOverwrite e dict”?

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 DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp 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

  1. Mesclagem profunda com mergeOverwrite e dict
  2. tpl: renderizando textos a partir de valores
  3. Percorrendo arquivos com range sobre .Files.Glob
  4. fail e proteções de validação personalizadas
← Voltar para DevOps Bootcamp