相关疑难解决方法(0)

在golang中迭代时更改值

我想我有这些类型:

type Attribute struct {
    Key, Val string
}
type Node struct {
    Attr []Attribute
}
Run Code Online (Sandbox Code Playgroud)

并且我想迭代我的节点的属性来改变它们.

我本以为能够做到:

for _, attr := range n.Attr {
    if attr.Key == "href" {
        attr.Val = "something"
    }
}
Run Code Online (Sandbox Code Playgroud)

但由于attr不是指针,这不起作用,我必须这样做:

for i, attr := range n.Attr {
    if attr.Key == "href" {
        n.Attr[i].Val = "something"
    }
}
Run Code Online (Sandbox Code Playgroud)

有更简单或更快的方式吗?有可能直接从指针中获取指针range吗?

显然,我不想仅仅为迭代更改结构,更详细的解决方案不是解决方案.

arrays for-loop go

137
推荐指数
4
解决办法
6万
查看次数

标签 统计

arrays ×1

for-loop ×1

go ×1