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 attr
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 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.
forEach
necesariamente comenzaría con una aserción de tipo. Eso no es realmente mejor que attr := &n.Attr[i]
.
Array.prototype.forEach
JavaScript?