Go 类型的代码生成/语法表示

在 Go 标准库中,有一些方法可以将对象漂亮地打印到 Go-Syntax 表示中,例如,这里有如何漂亮地打印一个值,

https://play.golang.org/p/hztlPEf1If

那么有什么方法可以转储类型的定义吗?如果没有,停止使用此功能背后的挑战是什么。


波斯汪
浏览 115回答 1
1回答

慕虎7371278

我写了一点反射函数,也许它可以帮助你。请检查 :package mainimport (&nbsp; &nbsp; "fmt"&nbsp; &nbsp; "reflect")type S struct {&nbsp; &nbsp; A string&nbsp; &nbsp; B int&nbsp; &nbsp; c bool&nbsp; &nbsp; d float64&nbsp; &nbsp; e struct {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; f int&nbsp; &nbsp; &nbsp; }}func main() {&nbsp; &nbsp; var s S&nbsp; &nbsp; MagicPrint(&s)}func MagicPrint(t interface{}) {&nbsp; &nbsp; typeOfT := reflect.TypeOf(t).Elem()&nbsp; &nbsp; fmt.Println("type", typeOfT.Name(), " struct {")&nbsp; &nbsp; for i := 0; i < typeOfT.NumField(); i++ {&nbsp; &nbsp; &nbsp; &nbsp; f := typeOfT.Field(i)&nbsp; &nbsp; &nbsp; &nbsp; fmt.Printf("%s %s\n", f.Name, f.Type)&nbsp; &nbsp; }&nbsp; &nbsp; fmt.Println("}")}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go