Cambia valores mientras iteran en golang
Supongamos que tengo estos tipos:
type Attribute struct {
Key, Val string
}
type Node struct {
Attr []Attribute
}
y que quiero iterar en los atributos de mi nodo para cambiarlos.
Me hubiera encantado poder hacer:
for _, attr := range n.Attr {
if attr.Key == "href" {
attr.Val = "something"
}
}
pero comoattr
no es un puntero, esto no funcionaría y tengo que hacer:
for i, attr := range n.Attr {
if attr.Key == "href" {
n.Attr[i].Val = "something"
}
}
¿Hay alguna forma más simple o más rápida? ¿Es posible obtener directamente los punteros derange
?
Obviamente, no quiero cambiar las estructuras solo para la iteración y las soluciones más detalladas no son soluciones.