Supposons que j'ai ces types:
type Attribute struct {
    Key, Val string
}
type Node struct {
    Attr []Attribute
}
et que je veux itérer sur les attributs de mon nœud pour les changer.
J'aurais aimé pouvoir faire:
for _, attr := range n.Attr {
    if attr.Key == "href" {
        attr.Val = "something"
    }
}
mais ce attrn'est pas un pointeur, cela ne fonctionnerait pas et je dois le faire:
for i, attr := range n.Attr {
    if attr.Key == "href" {
        n.Attr[i].Val = "something"
    }
}
Existe-t-il un moyen plus simple ou plus rapide? Est-il possible d'obtenir directement des pointeurs range?
Evidemment, je ne veux pas changer les structures juste pour l'itération et des solutions plus verbeuses ne sont pas des solutions.
forEachcommence nécessairement par une assertion de type. Ce n'est pas vraiment mieux que attr := &n.Attr[i].
                
Array.prototype.forEachJavaScript?