Djup sammanslagning med mergeOverwrite och dict
Sätt samman strukturerade värden programmatiskt
Djup sammanslagning med mergeOverwrite och dict är en gratis lektion i Helm Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Helm Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Helm Academy innehåller totalt 4 lektioner.
Skapa maps i mallar
Ibland behöver Ni sätta samman en map i en mall. Funktionen dict skapar en från växelvisa nyckel- och värdepar.
{{ $cfg := dict "level" "info" "json" true }}Varför kombinera maps
Ofta har Ni standardvärden från chartet plus användaröverskrivningar och vill ha en enda kombinerad map. Det är precis vad en merge skapar.
Ytlig merge
Funktionen merge kopierar nycklar från källmappar till en destinationsmap, men behåller destinationsvärdet när en nyckel redan finns.
{{ $out := merge $user $defaults }}merge prioriterar destinationen
Med merge vinner det första argumentet vid nyckelkonflikter, så funktionen passar bra när användarindata ska åsidosätta era standardvärden.
Introduktion till mergeOverwrite
Funktionen mergeOverwrite gör tvärtom: senare källmappar skriver över destinationen och lägger värden ovanpå.
{{ $out := mergeOverwrite $defaults $user }}Djup, inte ytlig
Båda hjälpfunktionerna sammanfogar rekursivt: kapslade mappar kombineras nyckel för nyckel i stället för att hela delträdet ersätts på en gång.
Varning: ändring på plats
Var försiktig: merge och mergeOverwrite ändrar sitt första argument på plats. Skicka en ny map om Ni måste behålla originalet oförändrat.
{{ $base := dict }}{{ $r := mergeOverwrite $base .Values.extra }}Ett mönster med lager av standardvärden
Ett vanligt mönster är att börja med en standardvärdesmap och sedan lägga användarvärden ovanpå, så att ej angivna nycklar säkert faller tillbaka till standardvärden.
{{ $merged := mergeOverwrite (dict "port" 80) .Values.service }}Läsa sammanfogade värden
När mappen har sammanfogats behandlar Ni resultatet som vilken map som helst och hämtar nycklar med dot eller indexfunktionen som vanligt.
{{ $merged.port }}Serialisera resultatet
Om Ni vill skriva ut en sammanfogad struktur som YAML skickar Ni den genom toYaml och nindent, så att blocket hamnar med rätt indrag.
{{ toYaml $merged | nindent 4 }}Hämta ut en nyckel
När ett nyckelnamn är dynamiskt eller innehåller ovanliga tecken hämtar Ni det från mappen med funktionen index i stället för punktnotation.
{{ index $merged "log-level" }}Snabbkontroll
Snabbkontroll av riktningen för överskrivning.
Sammanfattning
Ni har lärt er använda dict för att skapa mappar, merge för att behålla destinationsnycklar och mergeOverwrite för att låta senare värden vinna, medan merge-funktionerna sammanfogar på djupet. 🎉
Lär dig YAML med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 30
- Lektioner
- 120
Vanliga frågor
Är lektionen ”Djup sammanslagning med mergeOverwrite och dict” gratis?
Ja – hela texten till ”Djup sammanslagning med mergeOverwrite och dict” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Helm Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Helm Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Djup sammanslagning med mergeOverwrite och dict”?
Sätt samman strukturerade värden programmatiskt Ni övar på Helm Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Helm Academy?
Du behöver inga förkunskaper. Utbildningen i Helm Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Djup sammanslagning med mergeOverwrite och dict”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Helm Academy-lektionen?
Ja. Varje Helm Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Djup sammanslagning med mergeOverwrite och dict
- tpl: Rendera strängar från värden
- Iterera över filer med range i .Files.Glob
- fail och anpassade valideringsskydd