gpt4 book ai didi

动态遍历结构中的每个字段并更改它们

转载 作者:IT王子 更新时间:2023-10-29 02:31:36 26 4
gpt4 key购买 nike

如何遍历 struct 中的所有字段并即时编辑/验证它们?

例子:

func UrlEncodeStruct(s interface{}) {
r := reflect.ValueOf(obj)
for i := 0; i < r.NumField(); i++ {
value := r.Field(i).String()
value = url.QueryEscape(value)
r.Field(i).SetString(value)
}
}

最佳答案

要修改调用者中的结构值,请更改函数以获取指向结构值的指针。否则,发布的函数对于仅包含导出的字符串字段的结构是正确的。

func UrlEncodeStruct(s interface{}) {
r := reflect.ValueOf(s).Elem() // <-- note call to Elem() here
for i := 0; i < r.NumField(); i++ {
value := r.Field(i).String()
value = url.QueryEscape(value)
r.Field(i).SetString(value)
}
}

这样调用它:

var s someStructType
UrlEncodeStruct(&s)

playground example

关于动态遍历结构中的每个字段并更改它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50863451/

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