Supponiamo che io abbia questi tipi:
type Attribute struct {
Key, Val string
}
type Node struct {
Attr []Attribute
}
e che voglio iterare sugli attributi del mio nodo per cambiarli.
Mi sarebbe piaciuto poter fare:
for _, attr := range n.Attr {
if attr.Key == "href" {
attr.Val = "something"
}
}
ma poiché attrnon è un puntatore, questo non funzionerebbe e devo fare:
for i, attr := range n.Attr {
if attr.Key == "href" {
n.Attr[i].Val = "something"
}
}
C'è un modo più semplice o più veloce? È possibile ottenere direttamente i puntatori da range?
Ovviamente non voglio cambiare le strutture solo per l'iterazione e soluzioni più dettagliate non sono soluzioni.
forEachnecessariamente iniziare con un'asserzione di tipo. Non è molto meglio di attr := &n.Attr[i].
Array.prototype.forEachJavaScript?