基本上,(我知道)迭代a的字段值的唯一方法struct
是这样的:
type Example struct {
a_number uint32
a_string string
}
//...
r := &Example{(2 << 31) - 1, "...."}:
for _, d:= range []interface{}{ r.a_number, r.a_string, } {
//do something with the d
}
我想知道,是否有更好,更通用的实现方法[]interface{}{ r.a_number, r.a_string, }
,所以我不需要单独列出每个参数,或者有没有更好的方法遍历结构?
我试图浏览一下reflect
包装,但是碰到了墙,因为我不确定一旦取回该怎么办reflect.ValueOf(*r).Field(0)
。
谢谢!
5
这是一篇有关反射的非常有趣的文章:blog.golang.org/laws-of-reflection以下文章中的一个示例:play.golang.org/p/_bKAQ3dQlu但是请注意,您不能查找未导出的字段与反射包(即以小写字母开头的字段)一起使用
—
-creack