Here’s a nice little technique I came across in developing gen.

Say you have a text template, and that template is intended to output Go code. You’d like to pass a data structure into the template, and have the structure appear in the template as its own value literal.

There is a printf format string that does just this: %#v

Let’s say you have a template like: p := {{.}}

Where {{.}} represents the passed-in data. Let’s say the data is a struct. type Person struct { Name string Age int }`person := Person{"Jane", 30}

In order to have the output work as we wish, we make this modification to the template:p := {{ printf "%#v" . }}…which means "call printf with the format string %#v and the value ., which represents the passed data.We execute the template along the lines of:tmpl.Execute(w, person)(Where tmpl is the compiled template above, and w is an io.Writer)The resulting output will be:p := pkg.Person{Name:"Jane", Age:30}…where pkg is your package name. That's valid Go code which in turn can be executed. Neat.`Here's a [runnable version]( on the Go playground.