当前位置: > > > > Golang 填充切片功能不起作用
来源:stackoverflow
2024-04-27 10:21:37
0浏览
收藏
各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题是《Golang 填充切片功能不起作用》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!
问题内容
我正在尝试向我的切片添加内容,但不知何故,切片从未更新。
endpointslist := make([]string, 3) for _, route := range routes { if len(route.endpoints) > 0 { waitgroup.add(1) go endpointroutine(route, template, route.protected, &waitgroup, &endpointslist) } }
我通过引用传递端点列表,这意味着我应该能够将新的东西分配到我认为的内存位置。
在函数 endpointroutine 中我这样做:
list := make([]string, 3) for _, r := range route.endpoints { list = append(list, "some data comes here...") } endpointslist = &list
当我在此之后执行 printr 时(在我的第一段代码下方和 waitgroup.wait() 部分之后),切片仍然是空的。
显然,我现在正在覆盖切片,我的最终目标是添加到切片。但是当我尝试使用此代码添加时:
endpointsList = append(endpointsList, "fdssdfsdfsdf")
它给了我错误:
无法使用端点列表(类型 *[]string)作为 []type
有人可以向我解释一下可能出了什么问题吗?
解决方案
使用 endpointslist = &list
,您可以将指向切片的指针分配给其他切片。要设置切片,请执行以下操作:
*endpointsList=list
本篇关于《Golang 填充切片功能不起作用》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注公众号!