登录
首页 >  Golang >  Go问答

Golang 填充切片功能不起作用

来源:stackoverflow

时间:2024-04-27 10:21:37 123浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《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的相关知识,请关注golang学习网公众号!

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