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.

questionAnswers(4)

yourAnswerToTheQuestion