Итерация по полям структуры в Go
По сути, единственный способ (который я знаю) перебирать значения полей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)
.
Спасибо!