gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 03:27:14 25 4
gpt4 key购买 nike

在 Go std lib 中,有一些方法可以将对象漂亮地打印到 Go 语法表示中,例如,这里是如何漂亮地打印一个值,

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

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

最佳答案

我写了一些反射函数,也许对你有帮助。请检查:

package main

import (
"fmt"
"reflect"
)

type S struct {
A string
B int
c bool
d float64
e struct {
f int
}
}

func main() {
var s S
MagicPrint(&s)
}

func MagicPrint(t interface{}) {
typeOfT := reflect.TypeOf(t).Elem()
fmt.Println("type", typeOfT.Name(), " struct {")

for i := 0; i < typeOfT.NumField(); i++ {
f := typeOfT.Field(i)
fmt.Printf("%s %s\n", f.Name, f.Type)
}
fmt.Println("}")
}

签到Go Playground

关于go - Go类型的代码生成/语法表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37156922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com