相关疑难解决方法(0)

迭代Go中结构的字段

基本上,迭代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
}
Run Code Online (Sandbox Code Playgroud)

我想知道,如果有更好,更通用的实现方式[]interface{}{ r.a_number, r.a_string, },所以我不需要单独列出每个参数,或者,是否有更好的方法来循环结构?

我试图透过reflect包裹看,但是我碰了一堵墙,因为我不知道一旦取回就该做什么reflect.ValueOf(*r).Field(0).

谢谢!

go go-reflect

81
推荐指数
4
解决办法
9万
查看次数

标签 统计

go ×1

go-reflect ×1