Golang:在源代码

时间:2016-12-05 17:25:52

标签: serialization go struct code-generation pretty-print

this question类似但不完全相同。

我正在做一些代码生成,从Go中制作.go文件。我有一个结构,我想生成它的文本表示,以便我可以将它作为文字插入到生成的代码中。

所以,如果我有myVal := SomeStruct{foo : 1, bar : 2},我想获得字符串"SomeStruct{foo : 1, bar : 2}"

这可以在Go吗?

1 个答案:

答案 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}}

Run