Dyb fletning med mergeOverwrite og dict
Sammensæt strukturerede værdier programmatisk.
Dyb fletning med mergeOverwrite og dict er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Opret maps i skabeloner
Nogle gange skal du samle et map inde i en skabelon. Funktionen dict opretter et ud fra skiftevis nøgle- og værdipar.
{{ $cfg := dict "level" "info" "json" true }}Hvorfor kombinere maps
Du har ofte chartets standardværdier plus brugerens tilsidesættelser og vil samle dem i ét map. Det er præcis det, en merge producerer.
Overfladisk merge
Funktionen merge kopierer nøgler fra kildemaps til et målmap, men beholder målværdien, når en nøgle allerede findes.
{{ $out := merge $user $defaults }}merge prioriterer målet
Med merge har det første argument forrang ved enhver sammenfaldende nøgle, så funktionen er ideel, når brugerinput skal tilsidesætte dine standardværdier.
Introduktion til mergeOverwrite
Funktionen mergeOverwrite gør det modsatte: Senere kildemaps overskriver målet og lægger værdier ovenpå.
{{ $out := mergeOverwrite $defaults $user }}Dyb, ikke overfladisk
Begge hjælpefunktioner fletter rekursivt: Indlejrede maps kombineres nøgle for nøgle i stedet for at erstatte hele undertræet på én gang.
Advarsel om direkte ændringer
Vær forsigtig: merge og mergeOverwrite ændrer deres første argument direkte. Giv dem et nyt dict, hvis du skal bevare originalen uændret.
{{ $base := dict }}{{ $r := mergeOverwrite $base .Values.extra }}Et mønster med lagdelte standardværdier
Et almindeligt mønster er at begynde med et standard-dict og derefter lægge brugerens værdier ovenpå, så ikke angivne nøgler falder sikkert tilbage.
{{ $merged := mergeOverwrite (dict "port" 80) .Values.service }}Læs flettede værdier
Når værdierne er flettet, behandler du resultatet som ethvert andet map og henter nøgler med dot eller index-funktionen som normalt.
{{ $merged.port }}Serialisér resultatet
Hvis du vil skrive en flettet struktur som YAML, skal du sende den gennem toYaml og nindent, så blokken får den rigtige indrykning.
{{ toYaml $merged | nindent 4 }}Hent én nøgle
Når et nøglenavn er dynamisk eller indeholder særlige tegn, skal du slå op i mappet med funktionen index i stedet for at bruge dot-adgang.
{{ index $merged "log-level" }}Hurtigt tjek
Hurtigt tjek af overskrivningsretningen.
Opsummering
Du har mødt dict til at oprette maps, merge til at bevare målnøgler og mergeOverwrite til at lade senere værdier vinde, og alle udfører dyb fletning. 🎉
Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 142
- Lektioner
- 568
Ofte stillede spørgsmål
Er lektionen “Dyb fletning med mergeOverwrite og dict” gratis?
Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Dyb fletning med mergeOverwrite og dict”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Dyb fletning med mergeOverwrite og dict”?
Sammensæt strukturerede værdier programmatisk. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?
Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Dyb fletning med mergeOverwrite og dict”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?
Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Dyb fletning med mergeOverwrite og dict
- tpl: Render strings fra values
- Gennemløb filer med range over .Files.Glob
- fail og brugerdefinerede valideringsværn