gpt4 book ai didi

reference - Go:你可以使用 range 和 slice 但得到引用吗? (迭代)

转载 作者:IT王子 更新时间:2023-10-29 00:41:07 25 4
gpt4 key购买 nike

假设我想更改数组中所有对象的值。我更喜欢范围语法,而不仅仅是命名循环。

所以我尝试了:

type Account struct {
balance int
}
type AccountList []Account
var accounts AccountList
...
....
// to init balances
for _,a := range( accounts ) {
a.balance = 100
}

这不起作用,因为 a 是 AccountList 中条目的副本,因此我们只更新副本。

这确实在我需要的时候起作用:

for a := range( accounts ) {
accounts[a].balance = 100
}

但是该代码在 for 循环中有一个额外的查找。

有没有办法做一个迭代器来获取对 AccountList 中结构的引用?

最佳答案

只需让 AccountList 为 []*Account。然后您将获得指向范围内每个帐户的指针。

关于reference - Go:你可以使用 range 和 slice 但得到引用吗? (迭代),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4948741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com