Golang:打印结构,因为它会出现在源代码中
Golang: print struct as it would appear in source code
与 this question 相似,但不完全相同。
我正在做一些代码生成,从 Go 中生成 .go 文件。我有一个结构,我想生成它的文本表示,以便我可以将它作为文字插入到生成的代码中。
所以,如果我有 myVal := SomeStruct{foo : 1, bar : 2}
,我想得到字符串 "SomeStruct{foo : 1, bar : 2}"
。
这在 Go 中可行吗?
来自 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}}
与 this question 相似,但不完全相同。
我正在做一些代码生成,从 Go 中生成 .go 文件。我有一个结构,我想生成它的文本表示,以便我可以将它作为文字插入到生成的代码中。
所以,如果我有 myVal := SomeStruct{foo : 1, bar : 2}
,我想得到字符串 "SomeStruct{foo : 1, bar : 2}"
。
这在 Go 中可行吗?
来自 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}}