gpt4 book ai didi

reflection - 如何使用 reflect 遍历结构

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

我有一个包含一些 url 参数的特定结构,我想使用 reflect 构建一个 url 参数字符串以遍历结构字段,这样我就不会关心结构真正包含什么。

假设我有一个这样的结构:

type Student struct {
Name string `paramName: "username"`
Age int `paramName: userage`
}

我这样分配一个学生:

s := Student{
Name : "Bob",
Age : 15,
}

我想为这个学生实例构建一个这样的查询参数字符串:

username=Bob&userage=15

到目前为止我有:

func (s Student) buildParams() string {
st := reflect.TypeOf(s)
fieldCount := st.NumField()
params := ""
for i := fieldCount; i > 0 ; i-- {
params = params + "&" + st.Field(i).Tag.Get("paramName") + "=" + st.Field(i).Name
}
return params
}

但是 s.buildParams() 什么也没给我,不是每个字段中 paramName 的标签值的事件:-(

那么我该怎么做呢?

最佳答案

结构标记中的冒号和值之间不应有空格。 paramName:"username" 不是 paramName: "username"。此外,您使用的是字段名称而不是字段值。为了将值转换为字符串,您需要一些更复杂的东西。这是一个完整的例子:http://play.golang.org/p/4hEQ4jgDph

关于reflection - 如何使用 reflect 遍历结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28778120/

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