golang append() evaluated but not used

Per the Go docs:

The resulting value of append is a slice containing all the elements of the original slice plus the provided values.

So the return value of 'append', will contain your original slice with the appended portion.


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.


you may try this:

sliceA = append(sliceA, 4)

built-in function append([]type, ...type) returns an array/slice of type, which should be assigned to the value you wanted, while the input array/slice is just a source. Simply, outputSlice = append(sourceSlice, appendedValue)


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.

Tags:

Arrays

Var

Go