Golang Yaml

Golang Yaml
Nok et markeringsspråk eller YAML for kort er en dataserialisering med stor vekt på menneskelig lesbarhet. Det brukes ofte som et konfigurasjonsspråk for større verktøy og applikasjoner, feilsøkingslogger, dokumentoverskrifter osv.

Med sin økning de siste årene kan det være veldig gunstig å lære å jobbe med YAML -filer. I denne artikkelen lærer vi hvordan du jobber med YAML -filen ved hjelp av YAML.V3 -pakke i Go.

Golang Yaml -pakke

For å jobbe med Yaml i Go, bruker vi Yaml.V3 -pakke. Det gir verktøy og metoder for å utføre koding og avkoding av YAML -data.

For å installere pakken, kjør GO Get -kommandoen som:

Gå GOPKG.i/yaml.v3

Når du er installert, kan du importere pakken som vist:

Importer "Gopkg.i/yaml.v3 "

Golang leste Yaml

La oss begynne med å diskutere hvordan vi kan lese YAML -filer i Go. Anta at vi har en prøve YAML -fil som vist nedenfor:

Element1: 100
Element2: 40
Element3: 22
Element4: 50
Element5: 323

Vi kan bruke YAML -filen ved hjelp av Unmarshal -metoden. Et eksempelkode er som vist nedenfor:

pakkehoved
import (
"FMT"
"io/ioutil"
"Logg"
"Gopkg.i/yaml.v3 "
)
FUNCMAIN ()
fil, feil: = ioutil.ReadFile ("Brukere.yaml ")
Hvis feil != nil
Logg.Fatal (feil)

Data: = make (kart [grensesnitt ] grensesnitt )
Feil: = yaml.Unmarshal ([] byte (fil) og data)
Hvis feil != nil
Logg.Fatal (feil)

For nøkkel, verdi: = Range data
fmt.Printf (" %s: %d \ n", nøkkel, verdi)

I eksempelkoden ovenfor leste vi filen ved hjelp av ioutil.ReadFile () -metode. Vi oppretter deretter et kart for å lagre dataene fra Type -grensesnittet, grensesnittet.

Vi unmarshal dataene fra filen ved hjelp av bruk av unmarshal -metoden. Til slutt itererer vi over nøklene og verdiene på kartet ved å bruke Operatøren.

Koden over skal returnere:

Element1: 100
Element2: 40
Element3: 22
Element4: 50
Element5: 323

Anta at du har en nestet YAML -fil som vist:

Dev1:
Navn: John Creese
Avdeling: Spillutvikler
Dev2:
Navn: Emma Rin
Avdeling: DevOps utvikler
Dev3:
Navn: Sammuelmwese
Avdeling: Backe-end utvikler

For det kan vi bruke strukturen til å lagre informasjonen som vist:

Skriv brukerstruktur
Navnstreng
Avdelingsstreng

Deretter kan vi utføre en enkel unmarshal -operasjon som:

pakkehoved
import (
"FMT"
"io/ioutil"
"Logg"
"Gopkg.i/yaml.v3 "
)
Skriv brukerstruktur
Navnstreng
Avdelingsstreng

FUNCMAIN ()
fil, feil: = ioutil.ReadFile ("Brukere.yaml ")
Hvis feil != nil
Logg.Fatal (feil)

Data: = Make (Map [String] Bruker)
err1: = yaml.Unmarshal (fil og data)
Hvis err1 != nil
Logg.Fatal (err1)

For nøkkel, verdi: = Range data
fmt.Println (tast, verdi)

Koden over skal returnere en utdata som:

Dev1 John Creese Game Developer
Dev2 Emma Rin DevOps Developer
Dev3 Sammuel Mwese Backe-End Developer

Golang Skriv Yaml

For å skrive YAML -fil, kan vi bruke marskalkmetoden. Et eksempel er som vist nedenfor:

pakkehoved
import (
"FMT"
"io/ioutil"
"Logg"
"Gopkg.i/yaml.v3 "
)
FUNCMAIN ()
Frukt: = […] String "Apple", "Orange", "Mango", "Strawberry"
Data, feil: = yaml.Marskalk (frukt)
Hvis feil != nil
Logg.Fatal (feil)

err1: = ioutil.Skrivfile ("frukt.YAML ", Data, 0644)
Hvis err1 != nil
Logg.Fatal (err1)

fmt.Println ("Suksess!")

I eksemplet over bruker vi marskalkmetoden for å serialisere skiven av strenger i Yaml. Vi bruker deretter de serialiserte dataene og skriver dem til en fil.

Hvis filen ikke eksisterer, bør koden opprette den med den spesifiserte tillatelsen og skrive til den. Å kjøre ovennevnte program skal returnere:

$ go run main.gå

Suksess!

Lukking

Denne opplæringen dekket det grunnleggende om å lese og skrive YAML -filer i Go ved å bruke YAML.V3 -pakke. Sjekk dokumentene for å lære mer.