sando o refletir, como você define o valor de um campo struc
tendo um tempo difícil trabalhando com campos struct usandoreflect
pacote. em particular, não descobriram como definir o valor do campo.
type t struct { fi int; fs string } var r t = t{ 123, "jblow" } var i64 int64 = 456
getting Nome do campo i - isso parece funcionar
var field = reflect.TypeOf(r).Field(i).Name
getting valor do campo i como a) interface {}, b) int - isso parece funcionar
var iface interface{} = reflect.ValueOf(r).Field(i).Interface()
var i int = int(reflect.ValueOf(r).Field(i).Int())
definição do valor do campo i - tente um - panic
reflect.ValueOf(r).Field(i).SetInt( i64 )
pânic: reflect.Value · SetInt usando o valor obtido usando o campo não exportado
assumindo que ele não gostou dos nomes de campo "id" e "name", renomeado para "Id" e "Name"
a) esta suposição está correta?
b) se correto, não necessário, pois no mesmo arquivo / pacote
configurando o valor do campo i - tente dois (com os nomes dos campos em maiúsculas) - panic
reflect.ValueOf(r).Field(i).SetInt( 465 )
reflect.ValueOf(r).Field(i).SetInt( i64 )
pânic: reflect.Value · SetInt usando valor não endereçável
As instruções abaixo de @peterSO são completas e de alta qualidade
Four. isso funciona
reflect.ValueOf(&r).Elem().Field(i).SetInt( i64 )
os documentos também que os nomes dos campos devem ser exportáveis (comece com letras maiúsculas)