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