为了账号安全,请及时绑定邮箱和手机立即绑定

迭代时更改值

迭代时更改值

Go
FFIVE 2021-06-04 22:21:50
假设我有这些类型: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?显然,我不想仅仅为了迭代而改变结构,更详细的解决方案是没有解决方案的。
查看完整描述

3 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

我会调整您的最后一个建议并使用仅索引版本的范围。


for i := range n.Attr {

    if n.Attr[i].Key == "href" {

        n.Attr[i].Val = "something"

    }

}

对我来说,n.Attr[i]在测试Key行和设置行中明确引用似乎更简单Val,而不是使用attrfor 一个和n.Attr[i]另一个。


查看完整回答
反对 回复 2021-06-07
  • 3 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信