gpt4 book ai didi

go - 从 Golang 结构生成序列化器

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

我有一个这样的结构,

type Example struct{
a int
b int
c string
}

func Calculate(){
obj := Example{1,2,"lahmacun"}
// do something in here
// I have to get this result as a string: "[a=1,b=2,c=lahmacun]"
// Example can be anything. which means we dont know anything about struct. Just we know its a struct.
}

我想做一个序列化器,但我做不到。

注意:在 nodejs 中我们有 for...in 循环。这很容易。但在 golang 中,一切对我来说都非常不同。

最佳答案

我找到了答案。感谢@mkopriva <3

func PKIStringify(v interface{}) (res string) {
rv := reflect.ValueOf(v)
num := rv.NumField()
for i := 0; i < num; i++ {
fv := rv.Field(i)
st := rv.Type().Field(i)
fmt.Println(fv.Kind())
res += st.Name + "="
switch fv.Kind() {
case reflect.String:
res += fv.String()
case reflect.Int:
res += fmt.Sprint(fv.Int())
case reflect.Struct:
res += PKIStringify(fv.Interface())
}
if i != num-1 {
res += ","
}
}

return "[" + res + "]"
}

关于go - 从 Golang 结构生成序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48824731/

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