Iterar através dos campos de uma estrutura em Go

Basicamente, a única maneira (que eu conheço) de percorrer os valores dos campos de umstruct é como isso:

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
}

Eu estava pensando, se há uma maneira melhor e mais versátil de alcançar[]interface{}{ r.a_number, r.a_string, }, então eu não preciso listar cada parâmetro individualmente ou, alternativamente, existe uma maneira melhor de fazer um loop através de uma struct?

Eu tentei olhar através doreflect pacote, mas eu bati em uma parede, porque eu não tenho certeza do que fazer quando eu recuperarreflect.ValueOf(*r).Field(0).

Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion