Wie man Strukturvariablen in der Konsole druckt

Suraj Joshi 11 Dezember 2023
  1. Deklarieren Sie struct in Go
  2. Printf-Funktion des fmt-Pakets
  3. Marshal-Funktion des Pakets encoding/json
Wie man Strukturvariablen in der Konsole druckt

In Go ist struct eine Sammlung verschiedener Felder des gleichen oder verschiedener Datentypen. Eine struct ist ähnlich der Klasse im Paradigma der objektorientierten Programmierung. Wir können Structs mit der Funktion Printf des Pakets fmt zusammen mit speziellen Tags als Argumente für die Funktion Printf ausgeben. In ähnlicher Weise können wir Structs auch unter Verwendung spezieller Pakete wie encoding/json, go-spew und Pretty Printer Library ausgeben.

Deklarieren Sie struct in Go

Strukturen in Go werden mit dem Schlüsselwort struct erstellt.

package main

import "fmt"

type info struct {
    Name    string
    Address string
    Pincode int
}

func main() {
    a1 := info{"Dikhsya Lhyaho", "Jhapa", 123}
    fmt.Println("Info of Dikhsya: ", a1)
}

Ausgabe:

Info of Dikhsya:  {Dikhsya Lhyaho Jhapa 123}

Wir können struct-Variablen mit verschiedenen Paketen in Go ausgeben. Einige von ihnen werden im folgenden beschrieben:

Printf-Funktion des fmt-Pakets

Wir können die Printf-Funktion des Pakets fmt mit einer speziellen Formatierungsoption verwenden. Die verfügbaren Formatierungsoptionen zur Anzeige von Variablen mit fmt sind

formatieren Beschreibung
%v Den Variablenwert in einem Standardformat drucken
%+v Fügen Sie Feldnamen mit dem Wert
%#v eine Go-Syntax-Darstellung des Wertes
%T eine Go-Syntax-Darstellung des Typs des Wertes
%% ein wörtliches Prozentzeichen; verbraucht keinen Wert

Beispiel-Codes:

package main

import "fmt"

type Employee struct {
    Id   int64
    Name string
}

func main() {
    Employee_1 := Employee{Id: 10, Name: "Dixya Lhyaho"}
    fmt.Printf("%+v\n", Employee_1) // with Variable name
    fmt.Printf("%v\n", Employee_1)  // Without Variable Name
    fmt.Printf("%d\n", Employee_1.Id)
    fmt.Printf("%s\n", Employee_1.Name)
}

Ausgabe:

{Id:10 Name:Dixya Lhyaho}
{10 Dixya Lhyaho}
10
Dixya Lhyaho

Marshal-Funktion des Pakets encoding/json

Eine andere Möglichkeit ist die Verwendung der Funktion Marshal des Pakets encoding/json.

package main

import (
    "encoding/json"
    "fmt"
)

type Employee struct {
    Id   int64
    Name string
}

func main() {
    Employee_1 := Employee{Id: 10, Name: "Dixya Lhyaho"}

    jsonE, _ := json.Marshal(Employee_1)
    fmt.Println(string(jsonE))
}

Ausgabe:

{"Id":10,"Name":"Dixya Lhyaho"}

Dump-Funktion des Pakets go-spew

Eine andere Möglichkeit ist, die Dump-Funktion des Pakets go-spew zu benutzen.
.

package main

import (
    "github.com/davecgh/go-spew/spew"
)

type Employee struct {
    Id   int64
    Name string
}

func main() {
    Employee_1 := Employee{Id: 10, Name: "Dixya Lhyaho"}
    spew.Dump(Employee_1)

}

Ausgabe:

(main.Employee) {
 Id: (int64) 10,
 Name: (string) (len=12) "Dixya Lhyaho"
}

Um das Paket go-spew zu installieren, führen Sie den folgenden Befehl auf Ihrem Terminal aus:

go get -u github.com/davecgh/go-spew/spew
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Go Struct