gpt4 book ai didi

pointers - Go:获取 map 成员的地址

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

有人可以解释为什么 r 包含两个完整的相同地址吗?

r := make([]*Result, len(m))
i := 0
for _, res := range m {
fmt.Println("index, result:", i, *&res)
r[i] = &res
i++
}
fmt.Println(r)

结果:

index, result: 0 {[] map[0:1 1:1] {port=6379}}
index, result: 1 {[] map[0:1 1:1] {port=6380}}
[0xc21010d6c0 0xc21010d6c0]

最佳答案

使用*Result 作为映射值。例如,

package main

import "fmt"

type Result struct{}

func main() {
m := make(map[string]*Result)
r := make([]*Result, 0, len(m))
for _, res := range m {
fmt.Println("index, result:", len(r), *res)
r = append(r, res)
}
fmt.Println(r)
}

关于pointers - Go:获取 map 成员的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22541473/

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