Golang Yaml

Golang Yaml
Ancora un altro linguaggio di markup o YAML in breve è una serie di dati con una forte enfasi sulla leggibilità umana. Viene spesso utilizzato come linguaggio di configurazione per strumenti e applicazioni principali, registri di debug, intestazioni di documenti, ecc.

Con la sua ascesa negli ultimi anni, imparare a lavorare con i file YAML può essere molto utile. In questo articolo, impareremo come lavorare con il file YAML usando YAML.pacchetto v3 in go.

Pacchetto Golang Yaml

Per lavorare con Yaml in Go, usiamo lo yaml.pacchetto v3. Fornisce strumenti e metodi per eseguire la codifica e la decodifica dei dati YAML.

Per installare il pacchetto, eseguire il comando GO GOT come:

Vai a prendere Gopkg.in/yaml.v3

Una volta installato, è possibile importare il pacchetto come mostrato:

Importa "Gopkg.in/yaml.v3 "

Golang leggi Yaml

Cominciamo discutendo su come leggere i file yaml in Go. Supponiamo di avere un file YAML di esempio come mostrato di seguito:

Articolo1: 100
Item2: 40
Articolo3: 22
Item4: 50
Articolo5: 323

Possiamo usare il file YAML usando il metodo Unmarshal. Un codice di esempio è come mostrato di seguito:

Pacchetto principale
importazione (
"FMT"
"Io/IoUtil"
"tronco d'albero"
"Gopkg.in/yaml.v3 "
)
funcmain ()
File, err: = Ioutil.ReadFile ("Utenti.Yaml ")
Se err != nil
tronco d'albero.Fatale (err)

data: = make (mappa [interfaccia ] interfaccia )
Errore: = Yaml.Unmarshal ([] byte (file) e dati)
Se errore != nil
tronco d'albero.Fatale (err)

per la chiave, valore: = dati di intervallo
fmt.Printf (" %s: %d \ n", chiave, valore)

Nel codice di esempio sopra, leggiamo il file utilizzando IoUtil.Metodo ReadFile (). Creiamo quindi una mappa per archiviare i dati dell'interfaccia di tipo, interfaccia.

Quindi sleghiamo i dati dal file utilizzando il metodo Unmarshal. Infine, ripetiamo le chiavi e i valori della mappa utilizzando l'operatore di intervallo.

Il codice sopra dovrebbe restituire:

Articolo1: 100
Item2: 40
Articolo3: 22
Item4: 50
Articolo5: 323

Supponiamo di avere un file yaml nidificato come mostrato:

Dev1:
Nome: John Creese
Dipartimento: sviluppatore di giochi
Dev2:
Nome: Emma Rin
Dipartimento: sviluppatore DevOps
Dev3:
Nome: Sammuelmwese
Dipartimento: sviluppatore di Back-End

Per questo, possiamo usare la struttura per archiviare le informazioni come mostrato:

Digita utente struct
Nome String
String del dipartimento

Successivamente, possiamo eseguire una semplice operazione non marshal come:

Pacchetto principale
importazione (
"FMT"
"Io/IoUtil"
"tronco d'albero"
"Gopkg.in/yaml.v3 "
)
Digita utente struct
Nome String
String del dipartimento

funcmain ()
File, err: = Ioutil.ReadFile ("Utenti.Yaml ")
Se err != nil
tronco d'albero.Fatale (err)

Dati: = make (mappa [string] utente)
err1: = yaml.Unmarshal (file e dati)
Se err1 != nil
tronco d'albero.Fatale (err1)

per la chiave, valore: = dati di intervallo
fmt.Println (chiave, valore)

Il codice sopra dovrebbe restituire un output come:

Dev1 John Creese Game Developer
Dev2 Emma Rin Devops Developer
Dev3 Sammuel Mwese Back-End Developer

Golang scrivi yaml

Per scrivere il file yaml, possiamo usare il metodo del maresciallo. Un esempio è come mostrato di seguito:

Pacchetto principale
importazione (
"FMT"
"Io/IoUtil"
"tronco d'albero"
"Gopkg.in/yaml.v3 "
)
funcmain ()
Frutti: = […] String "Apple", "Orange", "Mango", "Strawberry"
dati, err: = yaml.Maresciallo (frutti)
Se err != nil
tronco d'albero.Fatale (err)

Err1: = IoUtil.Writefile ("frutti.Yaml ", dati, 0644)
Se err1 != nil
tronco d'albero.Fatale (err1)

fmt.Println ("successo!")

Nell'esempio sopra, utilizziamo il metodo del maresciallo per serializzare la fetta di stringhe in YAML. Quindi utilizziamo i dati serializzati e li scriviamo in un file.

Se il file non esiste, il codice dovrebbe crearlo con l'autorizzazione specificata e scrivere ad esso. L'esecuzione del programma sopra dovrebbe restituire:

$ go run main.andare

Successo!

Chiusura

Questo tutorial ha coperto le basi della lettura e la scrittura di file yaml in Go usando lo yaml.pacchetto v3. Controlla i documenti per saperne di più.