Припустимо, у мене є такі типи:
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?