Sentry Answers>Go>

How To Print Struct Fields in Go

How To Print Struct Fields in Go

Clive B.

The Problem

You don’t know how to see the values that a struct contains.

The Solution

Because struct fields in Go are just values, printing them out can be as simple as printing any variable:

Click to Copy
package main import "fmt" type Example struct { ID int Title string } func main() { example := Example{ ID: 42, Title: "Example title", } fmt.Printf("example struct: ID: %d, Title: %s", example.ID, example.Title)

This prints:

Click to Copy
example struct: ID: 42, Title: Example title

Printing the Entire Struct

If you want to print the entire struct and include its field names automatically, you can use a special verb to do so:

Click to Copy
package main import ( "encoding/json" "fmt" "log" ) type Example struct { ID int Title string List []int } func main() { example := Example{ ID: 42, Title: "Example title", List: []int{1, 2, 3}, } fmt.Printf("%+v", example) }

This prints:

Click to Copy
{ID:42 Title:Example title List:[1 2 3]}

Alternatively, if you want to print something easier to see over multiple lines, you can use the json.MarshallIndent function to print it as indented JSON:

Click to Copy
func main() { example := Example{ ID: 42, Title: "Example title", List: []int{1, 2, 3}, } bytes, err := json.MarshalIndent(example, "", "\t") if err != nil { log.Fatal("failed to marshal example", err) } fmt.Println(string(bytes)) }

This prints:

Click to Copy
{ "ID": 42, "Title": "Example title", "List": [ 1, 2, 3 ] }

Further Reading

  • SentryGo Error Tracking and Performance Monitoring (opens in a new tab)
  • Syntax.fmListen to the Syntax Podcast (opens in a new tab)
  • Syntax.fm logo
    Listen to the Syntax Podcast (opens in a new tab)

    Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.

    SEE EPISODES

Considered “not bad” by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.