Como Imprimir Variáveis de Estruturas em Console do Go
Em Go, struct
é uma coleção de diferentes campos do mesmo tipo de dados ou de diferentes tipos. Um struct
é semelhante à classe no paradigma de Programação Orientada a Objetos. Podemos imprimir estruturas utilizando a função Printf
do pacote fmt
junto com tags especiais como argumentos para a função Printf
. Da mesma forma, também podemos imprimir estruturas utilizando pacotes especiais como encoding/json
, go-spew
, e Pretty Printer Library
.
Declare Estruturar
em Go
As estruturas em Go são criadas utilizando a palavra-chave 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)
}
Resultado:
Info of Dikhsya: {Dikhsya Lhyaho Jhapa 123}
Podemos imprimir variáveis de struct
com vários pacotes em Go. Algumas delas são descritas abaixo:
Função do pacote fmt
Podemos utilizar a função Printf
da embalagem fmt
com uma opção especial de formatação. As opções de formatação disponíveis para exibir variáveis utilizando o fmt
são:
Formato | Descrição |
---|---|
%v |
Imprimir o valor da variável em um formato padrão |
%+v |
Adicionar nomes de campo com o valor |
%#v |
uma representação do valor da sintaxe |
%T |
uma representação do tipo de valor, por meio de sintaxe |
%% |
um sinal literal de porcentagem; não consome nenhum valor |
Códigos de exemplo:
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)
}
Resultado:
{Id:10 Name:Dixya Lhyaho}
{10 Dixya Lhyaho}
10
Dixya Lhyaho
Função do pacote encoding/json
Outra maneira é utilizar a função Marshal
de 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))
}
Resultado:
{"Id":10,"Name":"Dixya Lhyaho"}
Função Dump
do pacote go-spew
Outra maneira é utilizar a função Dump
do pacote 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)
}
Resultado:
(main.Employee) {
Id: (int64) 10,
Name: (string) (len=12) "Dixya Lhyaho"
}
Para instalar o pacote go-spew
, execute o seguinte comando em seu terminal:
go get -u github.com/davecgh/go-spew/spew
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn