gpt4 book ai didi

go - 如何在 golang (aws sdk-for-go) 中正确地将 map 解压到自定义嵌套结构中

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

我有一个包含两个值(Etag 和 PartNumber)的 map ,如下所示:

upload_out := make(map[int64]string) //key - PartNumber, value - Etag

我最终想用我的值遍历这个映射并将它们转储到自定义结构的一部分中,如下所示:

Parts: []*s3.CompletedPart{
{ // Required
ETag: aws.String("ETag1"),
PartNumber: aws.Int64(PartNumber1),
},
{ // Required
ETag: aws.String("ETag2"),
PartNumber: aws.Int64(PartNumber2),
},
// More values...
},

我想我的问题是不了解如何正确执行此操作。我下面的尝试循环始终只添加一个键值对。所以并不是所有的值都被解包。

var paths  []*s3.CompletedPart
for key, val := range upload_out {
//var unique [10000]*s3.CompletedPart //Attempt unique variable names

name := &s3.CompletedPart{ // this only does one
ETag: &val,
PartNumber: &key,
}


paths = append(paths, name)
}

如能提供正确的帮助,我们将不胜感激。

最佳答案

您正在为循环中的 keyval 变量分配地址,每个变量只有一个。您需要复制这些值,以便为每个条目分配一个新指针。最简单的方法是使用提供的 aws 便利函数:

for key, val := range upload_out {
name := &s3.CompletedPart{
ETag: aws.String(val),
PartNumber: aws.Int64(key),
}
paths = append(paths, name)
}

关于go - 如何在 golang (aws sdk-for-go) 中正确地将 map 解压到自定义嵌套结构中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41882463/

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