golang append()已评估但未使用

L.j*_*son 44 arrays var go

func main(){
     var array [10]int
     sliceA := array[0:5]
     append(sliceA, 4)
     fmt.Println(sliceA)
}
Run Code Online (Sandbox Code Playgroud)

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

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

Moh*_*sin 61

参考:附加和复制切片

在Go中,参数按值传递.

典型append用法是:

a = append(a, x)
Run Code Online (Sandbox Code Playgroud)

你需要写:

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

输出:

[0 0 0 0 0 4]
Run Code Online (Sandbox Code Playgroud)

我希望它有所帮助.


小智 6

sliceA = append(sliceA, 4)
Run Code Online (Sandbox Code Playgroud)

append() 返回一个包含一个或多个新值的切片。
请注意,我们需要接受来自 append 的返回值,因为我们可能会获得一个新的切片值。