与this question类似但不完全相同。
我正在做一些代码生成,从Go中制作.go文件。我有一个结构,我想生成它的文本表示,以便我可以将它作为文字插入到生成的代码中。
所以,如果我有myVal := SomeStruct{foo : 1, bar : 2}
,我想获得字符串"SomeStruct{foo : 1, bar : 2}"
。
这可以在Go吗?
答案 0 :(得分:6)
来自fmt
包:
%#v a Go-syntax representation of the value
在从输出中删除包标识符(在此示例中为main.
)之后,这与内置格式一样接近。
type T struct {
A string
B []byte
}
fmt.Printf("%#v\n", &T{A: "hello", B: []byte("world")})
// out
// &main.T{A:"hello", B:[]uint8{0x77, 0x6f, 0x72, 0x6c, 0x64}}