Wie man Strukturvariablen in der Konsole druckt
-
Deklarieren Sie
struct
in Go -
Printf
-Funktion desfmt
-Pakets -
Marshal
-Funktion des Paketsencoding/json
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 is a backend software engineer at Matrice.ai.
LinkedIn