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