gpt4 book ai didi

go - 如何在 Go 中获取指向映射中值的指针

转载 作者:数据小太阳 更新时间:2023-10-29 03:12:32 24 4
gpt4 key购买 nike

我想获得一个指向映射值(包含结构)的指针,以便我可以修改结构中的字段,而不必重新分配它。

type Foo struct {
Bar int64
}

func SomeFunction(arg * Foo) {
...
}

我目前要做的事情:

if val, ok := myMap[idx]; ok {
// val is of type `Foo`
SomeFunction(&val)
myMap[idx] = val
}

我想做什么:

if val, ok := getPointer(myMap, idx); ok {
// val is of type `* Foo`
SomeFunction(val)
}

有没有办法在 Go 中执行此操作,还是我需要依靠足够聪明的编译器来执行复制省略?

最佳答案

对于此操作,您可以使用带有指针的map。喜欢:

var myMap map[int]*Foo

if _, val := range myMap {
// val is of type `* Foo`
SomeFunction(val)
}

关于go - 如何在 Go 中获取指向映射中值的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47503080/

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