What is the third parameter of a Go struct field?

It’s called a struct tag, they can be parsed using the reflect package at runtime.

From https://golang.org/ref/spec#Struct_types:

A field declaration may be followed by an optional string literal tag, which becomes an attribute for all the fields in the corresponding field declaration.

The tags are made visible through a reflection interface and take part in type identity for structs but are otherwise ignored.

Some packages that use reflection like json and xml use tags to handle special cases better.

Leave a Comment