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 attrbukan 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.
forEachakan dimulai dengan pernyataan jenis. Itu tidak benar-benar lebih baik daripada attr := &n.Attr[i].
Array.prototype.forEachJavaScript?