Salah satu cara debug saat membuat program adalah melakukan print atau menampilkan suatu variabel. Pada Golang, hal ini dapat dilakukan dengan dua cara, yaitu dengan Printf dan json.Marshal ditambah Println.

package main

import (
  "fmt"
  "encoding/json"
)

type Project struct {
  Id      int     `json:"project_id"`
  Name    string  `json:"name"`
}

func main() {
  myProject := Project{
    Id: 1,
    Name: "@kaklabs",
  }

  fmt.Printf("%+v\n", myProject)

  yourProject := Project{
    Id: 2,
    Name: "KAK Labs",
  }

  res, _ := json.Marshal(yourProject)
  fmt.Println(string(res))
}

Keluaran dari kode Go diatas adalah sebagai berikut.

{Id:1 Name:@kaklabs}
{"project_id":2,"name":"KAK Labs"}

Perbedaan dari kedua cara diatas adalah %+v menampilkan field dari struct sedangkan json.Marshal menampilkan field dari JSON. Kode diatas dapat diakses melalui The Go Playground.