Fusion profonde avec mergeOverwrite et dict
Composez des valeurs structurées par programmation.
Fusion profonde avec mergeOverwrite et dict est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.
Construire des tables associatives dans les modèles
Vous devez parfois assembler une table associative dans un modèle. La fonction dict en crée une à partir de paires alternées de clés et de valeurs.
{{ $cfg := dict "level" "info" "json" true }}Pourquoi combiner des tables associatives
Vous disposez souvent de valeurs par défaut du paquet et de remplacements définis par l’utilisateur, et vous voulez obtenir une seule table associative combinée. C’est exactement ce que produit une fusion.
Fusion superficielle
La fonction merge copie les clés des tables associatives sources dans une destination, mais conserve la valeur de destination lorsqu’une clé existe déjà.
{{ $out := merge $user $defaults }}merge privilégie la destination
Avec merge, le premier argument l’emporte en cas de conflit entre des clés. Cette fonction convient donc lorsque les entrées utilisateur doivent remplacer vos valeurs par défaut.
Découvrez mergeOverwrite
La fonction mergeOverwrite fait l’inverse : les tables associatives sources suivantes remplacent la destination et superposent leurs valeurs.
{{ $out := mergeOverwrite $defaults $user }}En profondeur, pas superficielle
Les deux fonctions auxiliaires fusionnent les données récursivement : les tables associatives imbriquées sont combinées clé par clé, plutôt que de remplacer tout le sous-arbre.
Attention aux modifications
Attention : merge et mergeOverwrite modifient leur premier argument directement. Transmettez un dict distinct si vous devez conserver l’original intact.
{{ $base := dict }}{{ $r := mergeOverwrite $base .Values.extra }}Un modèle de valeurs par défaut superposées
Un modèle courant consiste à partir d’un dict de valeurs par défaut, puis à superposer les valeurs utilisateur afin que les clés non définies utilisent une valeur de secours sûre.
{{ $merged := mergeOverwrite (dict "port" 80) .Values.service }}Lire les valeurs fusionnées
Une fois la fusion effectuée, vous traitez le résultat comme n’importe quelle table associative et récupérez les clés avec dot ou la fonction index, comme d’habitude.
{{ $merged.port }}Sérialiser le résultat
Pour produire une structure fusionnée au format YAML, faites-la passer par toYaml et nindent afin que le bloc se retrouve au bon niveau d’indentation.
{{ toYaml $merged | nindent 4 }}Extraire une seule clé
Lorsqu’un nom de clé est dynamique ou contient des caractères inhabituels, accédez à la table associative avec la fonction index plutôt qu’avec l’accès par point.
{{ index $merged "log-level" }}Vérification rapide
Vérification rapide de la direction de la réécriture.
Récapitulatif
Vous avez découvert dict pour construire des tables associatives, merge pour conserver les clés de destination et mergeOverwrite pour donner la priorité aux valeurs suivantes, le tout avec des fusions en profondeur. 🎉
Questions Fréquemment Posées
La leçon « Fusion profonde avec mergeOverwrite et dict » est-elle gratuite ?
Oui — le texte complet de « Fusion profonde avec mergeOverwrite et dict » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fusion profonde avec mergeOverwrite et dict » ?
Composez des valeurs structurées par programmation. Tu pratiques DevOps Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer DevOps Bootcamp ?
Aucune expérience préalable n'est requise. DevOps Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Fusion profonde avec mergeOverwrite et dict » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon DevOps Bootcamp ?
Oui. Chaque leçon DevOps Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Fusion profonde avec mergeOverwrite et dict
- tpl : rendre des chaînes provenant des valeurs
- Parcourir des fichiers avec range sur .Files.Glob
- fail et gardes de validation personnalisées