Supongamos que tengo estos tipos:
type Attribute struct {
Key, Val string
}
type Node struct {
Attr []Attribute
}
y que quiero iterar sobre 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 como attrno 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 una manera más simple o más rápida? ¿Es posible obtener directamente punteros range?
Obviamente no quiero cambiar las estructuras solo por la iteración y las soluciones más detalladas no son soluciones.
forEachnecesariamente comenzaría con una aserción de tipo. Eso no es realmente mejor que attr := &n.Attr[i].
Array.prototype.forEachJavaScript?