fmt package is magic! I love it and you can use it to simplify many tasks especially the debugging process 🙂
fmt.Printf("%#v\n", variable)
Take a look at this example and see how it is simple and you do not need any extra package to dump and debug variables:
package main
import "fmt"
type User struct {
ID int
Address Address
}
type Address struct {
Country string
}
func main() {
simpleSlice := []string{
"hi",
}
fmt.Printf("%#v\n", simpleSlice)
user := User{
ID: 123,
Address: Address{
Country: "FreeLand",
},
}
fmt.Printf("%#v\n", user)
// output:
// []string{"hi"}
// main.User{ID:123, Address:main.Address{Country:"FreeLand"}}
}