Zmień wartości podczas iteracji w golangu
Załóżmy, że mam następujące typy:
type Attribute struct {
Key, Val string
}
type Node struct {
Attr []Attribute
}
i że chcę iterować atrybuty mojego węzła, aby je zmienić.
Chciałbym móc:
for _, attr := range n.Attr {
if attr.Key == "href" {
attr.Val = "something"
}
}
ale jakoattr
nie jest wskaźnikiem, to by nie zadziałało i muszę to zrobić:
for i, attr := range n.Attr {
if attr.Key == "href" {
n.Attr[i].Val = "something"
}
}
Czy istnieje prostszy lub szybszy sposób? Czy możliwe jest bezpośrednie uzyskanie wskaźnikówrange
?
Oczywiście nie chcę zmieniać struktur tylko dla iteracji, a więcej gadatliwych rozwiązań nie jest rozwiązaniem.