# Go Concatenate Two Slices with Append and Variadic Operator

> Concatenate two slices in Go using the built-in append function with the variadic ... operator to unpack and merge elements from one slice into another

**URL:** https://sentry.io/answers/how-to-concatenate-two-slices-in-go/

---

## The Problem

You don't know how to concatenate two slices in Go.

## The Solution

In Go, the `append()` function can be used to concatenate two slices by appending one to the other.

The following example demonstrates how `append()` is used to merge two integer slices into one:

```go
package main

import "fmt"

func main() {
	slice1 := []int{1, 2, 3}
	slice2 := []int{4, 5, 6}

	// Concatenate slices
	concatenated := append(slice1, slice2...)

	fmt.Println("Concatenated Slice:", concatenated)
}
```

This returns the following output:

```
Concatenated Slice: [1 2 3 4 5 6]
```

**Note:** The `...` operator is used to unpack the elements of the second slice when passing it to the `append()` function.

Slices are a fundamental data type in Go. Combining slices in this way allows you to create a new slice that contains the elements of both input slices. This approach works for slices of any data type, not just integers. Simply change the element type (for example, from `[]int` to `[]string` or `[]byte`).

## Further reading

- The [Appending to and copying slices](https://go.dev/ref/spec#Appending_and_copying_slices) section of The Go Programming Language Specification

---

*Source: [sentry.io/answers/how-to-concatenate-two-slices-in-go/](https://sentry.io/answers/how-to-concatenate-two-slices-in-go/)*
