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 attr
n'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.
forEach
commence nécessairement par une assertion de type. Ce n'est pas vraiment mieux que attr := &n.Attr[i]
.
Array.prototype.forEach
JavaScript?