Stampa variabili Struct nella console in Go
-
Dichiara
struct
in Go -
Funzione
Printf
del pacchettofmt
-
Funzione
Marshal
del pacchettoencoding/json
In Go, struct
è una raccolta di diversi campi dello stesso o di diversi tipi di dati. Una struct
è simile alla classe nel paradigma della programmazione orientata agli oggetti. Possiamo stampare le strutture usando la funzione Printf
del pacchetto fmt
insieme a tag speciali come argomenti della funzione Printf
. Allo stesso modo, possiamo anche stampare strutture usando pacchetti speciali come encoding/json
, go-spew
e Pretty Printer Library
.
Dichiara struct
in Go
Le strutture in Go vengono create utilizzando la parola chiave 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)
}
Produzione:
Info of Dikhsya: {Dikhsya Lhyaho Jhapa 123}
Possiamo stampare variabili struct
con vari pacchetti in Go. Alcuni di loro sono descritti di seguito:
Funzione Printf
del pacchetto fmt
Possiamo usare la funzione Printf
del pacchetto fmt
con una speciale opzione di formattazione. Le opzioni di formattazione disponibili per visualizzare le variabili usando fmt
sono:
Formato | Descrizione |
---|---|
%v |
Stampa il valore della variabile in un formato predefinito |
%+v |
Aggiungi i nomi dei campi con il valore |
%#v |
una rappresentazione della sintassi Go del valore |
%T |
una rappresentazione della sintassi Go del tipo di valore |
%% |
un segno di percentuale letterale; Non consuma alcun valore |
Codici di esempio:
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)
}
Produzione:
{Id:10 Name:Dixya Lhyaho}
{10 Dixya Lhyaho}
10
Dixya Lhyaho
Funzione Marshal
del pacchetto encoding/json
Un altro modo è usare la funzione Marshal
del pacchetto 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))
}
Produzione:
{"Id":10,"Name":"Dixya Lhyaho"}
Funzione Dump
del pacchetto go-spew
Un altro modo è usare la funzione Dump
del pacchetto 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)
}
Produzione:
(main.Employee) {
Id: (int64) 10,
Name: (string) (len=12) "Dixya Lhyaho"
}
Per installare il pacchetto go-spew
, esegui il seguente comando nel tuo terminale:
go get -u github.com/davecgh/go-spew/spew
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn