Helm Academy · Lektion

Djup sammanslagning med mergeOverwrite och dict

Sätt samman strukturerade värden programmatiskt

Lektion 1 av 413 steg

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. 🎉

Gratis att börja

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

  1. Djup sammanslagning med mergeOverwrite och dict
  2. tpl: Rendera strängar från värden
  3. Iterera över filer med range i .Files.Glob
  4. fail och anpassade valideringsskydd
← Tillbaka till Helm Academy