回答

收藏

golang append() 已评估但未使用

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

    func main(){      var array [10]int     sliceA := array[0:5]             append(sliceA,4)     fmt.Println(sliceA)}3 J2 b8 Q  K# ?! ^
错误:append(sliceA,4) 已评估但未使用# X2 X7 J3 q3 X, ~8 _! D4 T8 o
我不知道为什么。切片追加操作未运行…* r0 q# ]0 y# e1 W9 {& D! p, A
                                                               
0 E5 X, {7 j6 h1 t# U1 o/ \) E    解决方案:                                                                3 k( D8 A- t4 ?) n9 Q
                                                                在 Go 中,参数按值传递。
/ y! s" V# V" `0 T# l) r典型append用法是:
0 N1 \6 C* _6 r  N, O
    a = append(a,x)$ c! r6 Q% r9 j4 O) [: ~# z
你需要写:& _$ @! l0 p( l; x- w6 Q$ W
    func main(){     var array [10]int    sliceA := array[0:5]    / append(sliceA,4) // discard    sliceA = append(sliceA,4) // keep    fmt.Println(sliceA)}
    * R3 C' n4 r" L6 O  i8 H
输出" v1 C+ c% j. K! o5 P! q6 T
    [0 0 0 0 0 4]" O' L+ z  F; ?" k  _. I" Z
我希望它帮助。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则