これらのタイプがあるとしましょう:
type Attribute struct {
Key, Val string
}
type Node struct {
Attr []Attribute
}
また、ノードの属性を反復処理して変更したいと考えています。
私はできることが大好きだったでしょう:
for _, attr := range n.Attr {
if attr.Key == "href" {
attr.Val = "something"
}
}
しかしattr
、ポインタではないので、これは機能せず、私はしなければなりません:
for i, attr := range n.Attr {
if attr.Key == "href" {
n.Attr[i].Val = "something"
}
}
より簡単またはより速い方法はありますか?から直接ポインタを取得することは可能range
ですか?
明らかに、反復のためだけに構造を変更したくないので、より詳細なソリューションはソリューションではありません。
forEach
は必ず型アサーションで始まると思います。それは本当により良いことではありませんattr := &n.Attr[i]
。
Array.prototype.forEach
、JavaScriptで何かをしたいですか?