Vamos supor que eu tenho 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 como attr
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 range
?
Obviamente, não quero alterar as estruturas apenas para a iteração, e soluções mais detalhadas não são soluções.
forEach
necessariamente comece com uma asserção de tipo. Isso não é realmente melhor do que attr := &n.Attr[i]
.
Array.prototype.forEach
JavaScript?