Misalkan saya memiliki tipe-tipe ini:
type Attribute struct {
Key, Val string
}
type Node struct {
Attr []Attribute
}
dan bahwa saya ingin beralih pada atribut simpul saya untuk mengubahnya.
Saya ingin sekali dapat melakukan:
for _, attr := range n.Attr {
if attr.Key == "href" {
attr.Val = "something"
}
}
tetapi karena attr
bukan sebuah pointer, ini tidak akan berhasil dan harus saya lakukan:
for i, attr := range n.Attr {
if attr.Key == "href" {
n.Attr[i].Val = "something"
}
}
Apakah ada cara yang lebih sederhana atau lebih cepat? Apakah mungkin untuk mendapatkan pointer secara langsung range
?
Jelas saya tidak ingin mengubah struktur hanya untuk iterasi dan solusi yang lebih verbal bukanlah solusi.
forEach
akan dimulai dengan pernyataan jenis. Itu tidak benar-benar lebih baik daripada attr := &n.Attr[i]
.
Array.prototype.forEach
JavaScript?