Stringer
The standard lib defines some interfaces such as Stringer used by fmt, to convert your type to a string.
type Val struct {
X int
}
func (v Val) String() string {
return fmt.Sprintf("[%v]", v.X)
}
func main() {
val := Val{X: 10}
fmt.Printf("%v", val)
}