Alterar valores ao iterar em golang
Vamos supor que eu tenha esses tipos:
type Attribute struct {
Key, Val string
}
type Node struct {
Attr []Attribute
}
e que eu quero iterar nos atributos do meu nó para alterá-los.
Eu adoraria poder fazer:
for _, attr := range n.Attr {
if attr.Key == "href" {
attr.Val = "something"
}
}
mas comoattr
não é um ponteiro, isso não funcionaria e eu tenho que fazer:
for i, attr := range n.Attr {
if attr.Key == "href" {
n.Attr[i].Val = "something"
}
}
Existe uma maneira mais simples ou mais rápida? É possível obter diretamente ponteiros derange
?
Obviamente, não quero alterar as estruturas apenas para a iteração e soluções mais detalhadas não são soluções.