/ / Golang: Cómo cambiar el valor del campo de estructura en un segmento de interfaces - go, struct, interface, slice

Golang: Cómo cambiar el valor del campo de estructura en un trozo de interfaces: ir, estructurar, interfaz, cortar

Problema en el patio de juegos: https://play.golang.org/p/UKB8f4qGsM

Tengo una porción de interfaces, lo sé con seguridadqué tipo tienen (en realidad no lo tengo, así que tendría que escribir para cambiarlo, pero lo dejé por claridad). ¿Cómo puedo asignar un valor a un campo en la estructura detrás de la interfaz? La aserción de tipo parece quitar la referencia.

También intenté usar punteros, eso tampocosin embargo, funciona principalmente porque no puedo tipear aserción entonces (no se puede tipear tipear * inter) y cuando lo desreferenciado, hace que sea inútil incluso tener ...

No tengo tanta experiencia en Go, agradecería cada ayuda que pueda obtener.

Respuestas

1 para la respuesta № 1

No puede cambiar el valor almacenado en la interfaz, debe usar un puntero al valor que desea cambiar:

for i := 0; i < 5; i++ {
slice = append(slice, &b{a: a{name: "Tom"}})
}

for i, _ := range slice {
x := slice[i].(*b)
x.name = "Tim"
}