Follow

Follow

Best way to concatenate two slices in Go.

Maheshwar Ligade's photo
Maheshwar Ligade
·May 5, 2023·

3 min read

Play this article

Table of contents

  • Introduction
  • Using the append function
  • Using the spread operator
  • Conclusion

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:

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:

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

https://www.youtube.com/channel/UCiTaHm1AYqMS4F4L9zyO7qA

https://www.techwasti.com/

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

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

Let’s connect on Stackoverflow, LinkedIn, & Twitter.

Did you find this article valuable?

Support techwasti by becoming a sponsor. Any amount is appreciated!

See recent sponsors Learn more about Hashnode Sponsors
 
Share this