Mesclagem profunda com mergeOverwrite e dict
Componha valores estruturados programaticamente.
Mesclagem profunda com mergeOverwrite e dict é uma aula grátis de Helm Academy 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 Helm Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Helm Academy 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 Helm Academy, atualize para CoddyKit PRO. O curso de Helm Academy inclui 4 aulas no total.
O que vou aprender em “Mesclagem profunda com mergeOverwrite e dict”?
Componha valores estruturados programaticamente. Você pratica Helm 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 Helm Academy?
Nenhuma experiência prévia é necessária. Helm 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 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 Helm Academy?
Sim. Cada aula de Helm 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
- Mesclagem profunda com mergeOverwrite e dict
- tpl: renderizando textos a partir de valores
- Percorrendo arquivos com range sobre .Files.Glob
- fail e proteções de validação personalizadas