Diyelim ki bu türlere sahibim:
type Attribute struct {
Key, Val string
}
type Node struct {
Attr []Attribute
}
ve bunları değiştirmek için düğümümün niteliklerini yinelemek istiyorum.
Yapabilmek isterdim:
for _, attr := range n.Attr {
if attr.Key == "href" {
attr.Val = "something"
}
}
ama attr
bir işaretçi olmadığından, bu işe yaramaz ve ben yapmak zorundayım:
for i, attr := range n.Attr {
if attr.Key == "href" {
n.Attr[i].Val = "something"
}
}
Daha basit veya daha hızlı bir yol var mı? Doğrudan işaretçi almak mümkün mü range
?
Açıkçası ben sadece yineleme için yapıları değiştirmek istemiyorum ve daha ayrıntılı çözümler çözüm değildir.
forEach
mutlaka bir tür iddia ile başlayacağından korkuyorum . Bundan daha iyi değil attr := &n.Attr[i]
.
Array.prototype.forEach
JavaScript mi istiyorsunuz ?