goappendslicevariadic-functions

Concatenate two slices in Go


I'm trying to combine the slice [1, 2] and the slice [3, 4]. How can I do this in Go?

I tried:

append([]int{1,2}, []int{3,4})

but got:

cannot use []int literal (type []int) as type int in append

However, the documentation seems to indicate this is possible, what am I missing?

slice = append(slice, anotherSlice...)

Solution

  • Add dots after the second slice:

    //                           vvv
    append([]int{1,2}, []int{3,4}...)
    

    This is just like any other variadic function.

    func foo(is ...int) {
        for i := 0; i < len(is); i++ {
            fmt.Println(is[i])
        }
    }
    
    func main() {
        foo([]int{9,8,7,6,5}...)
    }