Comment imprimer les variables de structure dans la console

Suraj Joshi 16 février 2024
  1. Déclarer struct dans Go
  2. Fonction Printf du paquet fmt
  3. Fonction de Marshal du paquet encoding/json
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
Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Article connexe - Go Struct