登录
首页 >  Golang >  Go问答

在Golang中如何在for循环中获取所有值

来源:stackoverflow

时间:2024-03-20 20:06:35 393浏览 收藏

在 Go 语言中,使用 `for` 循环获取数组中所有值时,可以使用 `append` 函数将值附加到切片中。而使用 `map` 时,需要为每次迭代使用唯一的键,否则会覆盖先前的值。此外,还应确保使用 `interface{}` 作为 `map` 的值类型,以支持任意类型。

问题内容

在 python 中,我可以返回我在数组中附加的内容的值

valuesinpy= []
for i range(len(value)) :
   valuesinpy.append(value[i])
return valuesinpy

它能够返回我想要在 golang 中附加的所有值

valueappend =make(map[strig]string)
for i :=range value{
    valueappend['abs']=value[i]
}
return  valueappend

都一样 但是返回的值相同,我很困惑

问题修复

我使用 map [string]interface{}{} 我少了一个切片结构

valueappend:=map[string]interface{}{}
for i :=range value{
   valueappend= append(valueappend, map[string]interface{}{
        "valueIwant append" value[i] :
     }
}
return valueappend

正确答案


每次执行循环时,您可能都需要更改映射的值,否则 value[i] 中的每个值都将继续写入映射中的同一字段,并保留最后一个值i 作为地图中的唯一值

我看到的一个问题是您使用的键在循环的所有迭代中都是相同的

valueappend['abs']=value[i]

这将覆盖所有先前的值,并且您将只保存循环中的最后一个值。最后你将得到一张只有一个值的地图。我猜这不是你想要的。使用可以为每次迭代使用唯一的键,如下所示,或者沿着同一行的其他内容

for i := range value {
    valueappend[i]=value[i]
}

@范纪予,请添加更多信息并澄清您想要在此处实现的目标。

理论要掌握,实操不能落!以上关于《在Golang中如何在for循环中获取所有值》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>