golang append() 已评估但未使用

新手上路,请多包涵
func main(){
     var array [10]int
     sliceA := array[0:5]
     append(sliceA, 4)
     fmt.Println(sliceA)
}

错误:append(sliceA, 4) 已评估但未使用

我不知道为什么?切片附加操作未运行…

原文由 L.jerson 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

参考: 追加和复制切片

在 Go 中,参数是按值传递的。

典型的 append 用法是:

 a = append(a, x)

你需要写:

 func main(){
    var array [10]int
    sliceA := array[0:5]
    // append(sliceA, 4)  // discard
    sliceA = append(sliceA, 4)  // keep
    fmt.Println(sliceA)
}

输出

 [0 0 0 0 0 4]

我希望它有所帮助。

原文由 Mohsin 发布,翻译遵循 CC BY-SA 3.0 许可协议

sliceA = append(sliceA, 4)

append() 返回包含一个或多个新值的切片。

请注意,我们需要接受 append 的返回值,因为我们可能会得到一个新的切片值。

原文由 Stackoverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题