在地图中存储引用的更好方法

Better way to store references in a map

在映射中存储对结构的引用还有什么比这更好的方法?现在我正在使用一个匿名函数,这样所有的映射键就不会以相同的引用结束。我敢肯定必须有更优雅的方式来做到这一点。

m := make(map[string]*Result)
for result := range results {
    func(r Result) {
        m[r.Key] = &r
    }(result)
}

更新: results 是一个简单结构的通道

使用以下存储指向新分配值的指针:

m := make(map[string]*Result)
for r := range results {
    r := r
    m[r.Key] := &r
}

如果您尝试复制结果结构:

m := make(map[string]*Result)
for result := range results {
    result:=result
    m[result.Key] = &result
}