Ä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.