回答

收藏

golang append() 已评估但未使用

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

    func main(){      var array [10]int     sliceA := array[0:5]             append(sliceA,4)     fmt.Println(sliceA)}
      a6 m/ R) }& @2 C8 H
错误:append(sliceA,4) 已评估但未使用9 \/ V4 p7 m2 q& F! g: P1 o2 J  l
我不知道为什么。切片追加操作未运行…8 L+ i. x+ }: D# q+ `: @6 v
                                                                8 d' Z$ _* B" [) ?* B+ T5 V
    解决方案:                                                                , b5 n+ b9 I% d$ x% Y
                                                                在 Go 中,参数按值传递。: Z6 Q7 `7 r% C/ b: J* E6 |
典型append用法是:
" q% b5 Q! G9 p6 P2 y$ R
    a = append(a,x)
    ( i% r( A/ U7 s1 C5 ]9 y4 Y) G
你需要写:; l3 b9 f* `9 g$ _3 h
    func main(){     var array [10]int    sliceA := array[0:5]    / append(sliceA,4) // discard    sliceA = append(sliceA,4) // keep    fmt.Println(sliceA)}) K% K: A  \4 t* k) `) [- I! Q
输出
; E. d1 j2 A+ @, j' R  f1 c: ^. e
    [0 0 0 0 0 4]
    , p  f# a# N2 M5 S0 A4 p0 M( ~9 U5 J
我希望它帮助。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则