Golang Yaml

Golang Yaml
Eine weitere Markup-Sprache oder ein kurzes Yaml ist eine Datenserialisierung mit starker Schwerpunkt auf menschlicher Lesbarkeit. Es wird häufig als Konfigurationssprache für wichtige Tools und Anwendungen, Debug -Protokolle, Dokumentenheader usw. verwendet.

Mit seinem Aufstieg in den letzten Jahren kann das Lernen, wie man mit YAML -Dateien arbeitet, sehr vorteilhaft sein. In diesem Artikel lernen wir, wie man mit der YAML -Datei mit der YAML funktioniert.V3 -Paket in Go.

Golang Yaml -Paket

Um mit Yaml in Go zu arbeiten, verwenden wir die Yaml.V3 -Paket. Es bietet Tools und Methoden zur Durchführung von Codierung und Dekodierung von YAML -Daten.

Um das Paket zu installieren, führen Sie den Befehl Go Get als: Aus

Holen Sie sich GOPKG.in/yaml.v3

Nach der Installation können Sie das Paket wie gezeigt importieren:

Import "gopkg.in/yaml.v3 "

Golang las Yaml

Lassen Sie uns zunächst diskutieren, wie Sie YAML -Dateien in Go lesen. Angenommen, wir haben eine Beispiel -YAML -Datei wie unten gezeigt:

Item1: 100
Item2: 40
Artikel3: 22
Item4: 50
Item5: 323

Wir können die YAML -Datei mit der Unmarshal -Methode verwenden. Ein Beispielcode ist wie unten gezeigt:

Paket Main
importieren (
"fmt"
"io/ioutil"
"Protokoll"
"Gopkg.in/yaml.v3 "
)
funcmain ()
Datei, ähm: = ioutil.ReadFile ("Benutzer.yaml ")
Wenn er irrt != nil
Protokoll.Tödlich (arr)

Daten: = make (map [interface ] interface )
Fehler: = yaml.Unmarshal ([] Byte (Datei) und Daten)
Wenn Fehler != nil
Protokoll.Tödlich (arr)

Für Schlüssel, Wert: = Bereichsdaten
fmt.Printf (" %s: %d \ n", Schlüssel, Wert)

Im obigen Beispielcode lesen wir die Datei mit der Ioutil.ReadFile () Methode. Anschließend erstellen wir eine Karte, um die Daten der Typ -Schnittstelle und der Schnittstelle zu speichern.

Wir sind dann die Daten aus der Datei mithilfe der UNMARSHAL -Methode unbedeutend. Schließlich iterieren wir über die Tasten und Werte der Karte mit dem Bereich Operator.

Der obige Code sollte zurückgeben:

Item1: 100
Item2: 40
Artikel3: 22
Item4: 50
Item5: 323

Angenommen, Sie haben eine verschachtelte YAML -Datei wie gezeigt:

Dev1:
Name: John Creese
Abteilung: Wildentwickler
Dev2:
Name: Emma Rin
Abteilung: DevOps -Entwickler
Dev3:
Name: Sammuelmwese
Abteilung: Backe-End-Entwickler

Dafür können wir die Struktur verwenden, um die Informationen wie gezeigt zu speichern:

Geben Sie die Benutzerstruktur ein
Name Zeichenfolge
Abteilungszeichenfolge

Als nächstes können wir einen einfachen Unmarshal -Operation durchführen wie:

Paket Main
importieren (
"fmt"
"io/ioutil"
"Protokoll"
"Gopkg.in/yaml.v3 "
)
Geben Sie die Benutzerstruktur ein
Name Zeichenfolge
Abteilungszeichenfolge

funcmain ()
Datei, ähm: = ioutil.ReadFile ("Benutzer.yaml ")
Wenn er irrt != nil
Protokoll.Tödlich (arr)

Daten: = make (map [String] Benutzer)
ERR1: = yaml.Unmarshal (Datei & Daten)
Wenn er1 != nil
Protokoll.Tödlich (ERR1)

Für Schlüssel, Wert: = Bereichsdaten
fmt.Println (Schlüssel, Wert)

Der obige Code sollte eine Ausgabe als:

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

Golang schreibe Yaml

Um die YAML -Datei zu schreiben, können wir die Marschallmethode verwenden. Ein Beispiel ist wie unten gezeigt:

Paket Main
importieren (
"fmt"
"io/ioutil"
"Protokoll"
"Gopkg.in/yaml.v3 "
)
funcmain ()
Früchte: = […] String "Apple", "Orange", "Mango", "Strawberry"
Daten, err: = yaml.Marschall (Früchte)
Wenn er irrt != nil
Protokoll.Tödlich (arr)

err1: = ioutil.WriteFile ("Früchte.yaml ", Daten, 0644)
Wenn er1 != nil
Protokoll.Tödlich (ERR1)

fmt.Println ("Erfolg!"))

Im obigen Beispiel verwenden wir die Marschallmethode, um das Scheibe von Strings in Yaml zu serialisieren. Wir verwenden dann die serialisierten Daten und schreiben sie in eine Datei.

Wenn die Datei nicht vorhanden ist, sollte der Code ihn mit der angegebenen Berechtigung erstellen und darauf schreiben. Ausführen des obigen Programms sollte zurückkehren:

$ go run main.gehen

Erfolg!

Schließen

Dieses Tutorial behandelte die Grundlagen des Lesens und Schreibens von YAML -Dateien in Go über die YAML.V3 -Paket. Überprüfen Sie die Dokumente, um mehr zu erfahren.