作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个包含一些 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/
我是一名优秀的程序员,十分优秀!