DevOps-bootcamp · leksjon

Dyp sammenslåing med mergeOverwrite og dict

Sett sammen strukturerte verdier programmatisk.

Leksjon 1 av 413 trinn

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

Gratis å komme i gang

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

  1. Dyp sammenslåing med mergeOverwrite og dict
  2. tpl: Rendrer strenger fra verdier
  3. Iterere over filer med range og .Files.Glob
  4. fail og egendefinerte valideringsvern
← Tilbake til DevOps-bootcamp