golang append() evaluated but not used

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

Error : append(sliceA, 4) evaluated but not used

I don't Know why? The slice append operation is not run...


Solution 1:

Refer: Appending to and copying slices

In Go, arguments are passed by value.

Typical append usage is:

a = append(a, x)

You need to write:

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

Output:

[0 0 0 0 0 4]

I hope it helps.

Solution 2:

sliceA = append(sliceA, 4)

append() returns a slice containing one or more new values.
Note that we need to accept a return value from append as we may get a new slice value.