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)
}