Ändern Sie die Werte, während Sie in Golang iterieren

Nehmen wir an, ich habe folgende Typen:

type Attribute struct {
    Key, Val string
}
type Node struct {
    Attr []Attribute
}

und dass ich die Attribute meines Knotens durchlaufen möchte, um sie zu ändern.

Am liebsten hätte ich folgendes gemacht:

for _, attr := range n.Attr {
    if attr.Key == "href" {
        attr.Val = "something"
    }
}

aberattr ist kein Zeiger, das würde nicht funktionieren und ich muss folgendes tun:

for i, attr := range n.Attr {
    if attr.Key == "href" {
        n.Attr[i].Val = "something"
    }
}

Gibt es einen einfacheren oder schnelleren Weg? Ist es möglich, Zeiger direkt von zu bekommen?range?

Natürlich möchte ich die Strukturen nicht nur für die Iteration ändern, und ausführlichere Lösungen sind keine Lösungen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage