# Best way to concatenate two slices in Go.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1682239523757/c3308243-5031-496a-b6c2-5a142b8c9e70.png align="center")

## **Introduction**

In Go, slices are a powerful and commonly used data structure. They are essentially dynamic arrays that can grow or shrink as needed. Sometimes you might need to concatenate two slices to create a new slice that contains all the elements from both slices. In this article, we'll explore the best way to concatenate two slices in Go.

## **Using the append function**

Go provides a built-in `append` a function that allows you to concatenate slices. The `append` function returns a new slice that contains all the elements from the original slices. Here's an example:

```go
package main

import "fmt"

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

    // Concatenate the two slices
    slice3 := append(slice1, slice2...)

    fmt.Println(slice3) // Output: [1 2 3 4 5 6]
}
```

In this example, we create two slices `slice1` and `slice2` containing the elements `[1, 2, 3]` and `[4, 5, 6]` respectively. We then concatenate the two slices using the `append` function and store the result in `slice3`. We use the `...` operator to pass the elements of `slice2` as separate arguments to the `append` function.

Note that the `append` the function does not modify the original slices, but rather returns a new slice that contains the concatenated elements.

## **Using the spread operator**

Starting from Go 1.13, you can use the spread operator (`...`) to concatenate slices directly without using the `append` function. Here's an example:

```go
package main

import "fmt"

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

    // Concatenate the two slices
    slice3 := [...]*int{&slice1, &slice2}

    fmt.Println(slice3) // Output: [1 2 3 4 5 6]
}
```

In this example, we create two slices `slice1` and `slice2` containing the elements `[1, 2, 3]` and `[4, 5, 6]` respectively. We then concatenate the two slices using the spread operator and store the result in `slice3`.

Note that the spread operator can only be used with slices of the same type.

## **Conclusion**

In conclusion, the best way to concatenate two slices in Go is by using the built-in `append` function. It allows you to easily concatenate slices of different sizes and types. Starting from Go 1.13, you can also use the spread operator to concatenate slices directly.

It's important to note that concatenating slices can be an expensive operation, especially if you're concatenating large slices frequently. In such cases, it's better to preallocate the new slice and use indexing to copy the elements from the original slice to the new slice.

I hope this helps, you!!

**More such articles:**

[https://medium.com/techwasti](Link)

[https://www.youtube.com/channel/UCiTaHm1AYqMS4F4L9zyO7qA](Link)

[https://www.techwasti.com/](Link)

\==========================\*\*=========================

**If this article adds any value to you then please clap and comment.**

**Let’s connect on** [**Stackoverflow**](http://stackoverflow.com/users/3187349/maheshwar-ligade)**,** [**LinkedIn**](https://in.linkedin.com/in/maheshwar-ligade-14447841)**, &** [**Twitter**](https://twitter.com/MaheshwarLigade)**.**
