回答

收藏

golang append() 已评估但未使用

技术问答 技术问答 262 人阅读 | 0 人回复 | 2023-09-12

    func main(){      var array [10]int     sliceA := array[0:5]             append(sliceA,4)     fmt.Println(sliceA)}: f6 j1 g' e& T& B5 L% {/ T
错误:append(sliceA,4) 已评估但未使用
! m2 e4 D0 o: P- d5 j
我不知道为什么。切片追加操作未运行…
- ]0 ?7 m6 N* a                                                               
3 m4 M+ k, j! [+ ^    解决方案:                                                               
: m  e0 L8 x# N& w* A                                                                在 Go 中,参数按值传递。
# M% Z+ x! Z+ w' Z: b+ D典型append用法是:8 H0 ~$ c/ z, w( @* Z
    a = append(a,x)
    8 H$ x* v/ P4 z+ l2 _/ ^6 L3 _
你需要写:
5 k# d0 e7 B: |
    func main(){     var array [10]int    sliceA := array[0:5]    / append(sliceA,4) // discard    sliceA = append(sliceA,4) // keep    fmt.Println(sliceA)}
    . k8 y2 v' ]5 T/ E& `' @
输出
6 D0 Z6 H9 r$ I( s3 |+ C$ a
    [0 0 0 0 0 4]7 W$ H  l1 M" C& l: u  W, i8 r
我希望它帮助。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则