Dyp sammenslåing med mergeOverwrite og dict
Sett sammen strukturerte verdier programmatisk.
Dyp sammenslåing med mergeOverwrite og dict er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i DevOps-bootcamp, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.
Bygg kart i maler
Noen ganger må De sette sammen et kart inne i en mal. Funksjonen dict oppretter et kart fra vekslende nøkkel- og verdipar.
{{ $cfg := dict "level" "info" "json" true }}Hvorfor kombinere kart
De har ofte standardverdier fra chartet pluss overstyringer fra brukeren, og ønsker ett samlet kart. Det er akkurat det en merge produserer.
Shallow merge
Funksjonen merge kopierer nøkler fra kildekart til et mål, men beholder målverdien når en nøkkel allerede finnes.
{{ $out := merge $user $defaults }}merge favoriserer målet
Med merge vinner det første argumentet ved nøkler med motstridende verdier, så funksjonen egner seg når brukerinndata skal overstyre standardverdiene Deres.
Her kommer mergeOverwrite
Funksjonen mergeOverwrite gjør det motsatte: Senere kildekart overskriver målet og legger verdier oppå det.
{{ $out := mergeOverwrite $defaults $user }}Deep merge, ikke shallow merge
Begge hjelpefunksjonene slår sammen rekursivt: Nestede kart kombineres nøkkel for nøkkel i stedet for at hele understrukturen erstattes.
Advarsel om mutering
Vær forsiktig: merge og mergeOverwrite endrer sitt første argument direkte. Send inn en ny dict hvis De må beholde originalen uendret.
{{ $base := dict }}{{ $r := mergeOverwrite $base .Values.extra }}Et mønster med lagdelte standardverdier
Et vanlig mønster er å starte med en standardverdier-dict og deretter legge brukerverdier oppå, slik at nøkler som ikke er angitt, får en trygg reserveverdi.
{{ $merged := mergeOverwrite (dict "port" 80) .Values.service }}Les sammenslåtte verdier
Når kartene er slått sammen, behandler De resultatet som ethvert annet kart og henter ut nøkler med dot eller index-funksjonen som vanlig.
{{ $merged.port }}Serialiser resultatet
For å skrive ut en sammenslått struktur som YAML sender De den gjennom toYaml og nindent, slik at blokken får riktig innrykk.
{{ toYaml $merged | nindent 4 }}Hent ut én nøkkel
Når et nøkkelnavn er dynamisk eller inneholder uvanlige tegn, kan De hente det fra kartet med funksjonen index i stedet for punktumsyntaks.
{{ index $merged "log-level" }}Kort sjekk
Kort sjekk av overskrivingsretningen.
Oppsummering
De ble kjent med dict for å bygge kart, merge for å beholde målnøkler og mergeOverwrite for å la senere verdier vinne, der alt slås sammen rekursivt. 🎉
Lær deg DevOps-bootcamp med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 142
- Leksjoner
- 568
Ofte stilte spørsmål
Er leksjonen «Dyp sammenslåing med mergeOverwrite og dict» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «Dyp sammenslåing med mergeOverwrite og dict», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.
Hva lærer jeg i «Dyp sammenslåing med mergeOverwrite og dict»?
Sett sammen strukturerte verdier programmatisk. Du øver på DevOps-bootcamp med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med DevOps-bootcamp?
Ingen tidligere erfaring er nødvendig. DevOps-bootcamp på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Dyp sammenslåing med mergeOverwrite og dict»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne DevOps-bootcamp-leksjonen?
Ja. Alle DevOps-bootcamp-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Dyp sammenslåing med mergeOverwrite og dict
- tpl: Rendrer strenger fra verdier
- Iterere over filer med range og .Files.Glob
- fail og egendefinerte valideringsvern