Comment imprimer les variables de structure dans la console
Dans Go, la struct
est un ensemble de différents champs de types de données identiques ou différents. Une struct
est similaire à la classe du paradigme de la programmation orientée objet. Nous pouvons imprimer des structures en utilisant la fonction Printf
du paquet fmt
avec des balises spéciales comme arguments de la fonction Printf
. De même, nous pouvons également imprimer des instructions en utilisant des paquets spéciaux tels que encoding/json
, go-spew
, et Pretty Printer Library
.
Déclarer struct
dans Go
Les structures en Go sont créées à l’aide du mot-clé struct
.
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)
}
Production:
Info of Dikhsya: {Dikhsya Lhyaho Jhapa 123}
Nous pouvons imprimer des variables struct
avec différents paquets dans le Go. Certains d’entre eux sont décrits ci-dessous:
Fonction Printf
du paquet fmt
Nous pouvons utiliser la fonction Printf
du paquet fmt
avec une option de formatage spéciale. Les options de formatage disponibles pour afficher les variables utilisant fmt
sont les suivantes:
Formatage | Description |
---|---|
%v |
Imprimer la valeur de la variable dans un format par défaut |
%+v |
Ajouter les noms de champs avec la valeur |
%#v |
une représentation de la valeur selon la syntaxe de Go |
%T |
une représentation syntaxique du type de valeur |
%% |
un signe de pourcentage littéral; ne consomme aucune valeur |
Exemples de 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)
}
Production:
{Id:10 Name:Dixya Lhyaho}
{10 Dixya Lhyaho}
10
Dixya Lhyaho
Fonction de Marshal
du paquet encoding/json
Une autre façon est d’utiliser la fonction Marshal
du package 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))
}
Production:
{"Id":10,"Name":"Dixya Lhyaho"}
Fonction [Dump] du paquet go-spew
Un autre moyen est d’utiliser la fonction Dump
du paquet go-spew
.
.
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)
}
Production:
(main.Employee) {
Id: (int64) 10,
Name: (string) (len=12) "Dixya Lhyaho"
}
Pour installer le paquet go-spew
, lancez la commande suivante dans votre terminal:
go get -u github.com/davecgh/go-spew/spew
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn