Merging Slices in Golang

Merging Slices in Golang: A Step-by-Step Guide

Learn how to efficiently merge two or more slices in Golang using the powerful append() method. This tutorial provides a comprehensive guide, explaining the syntax, usage, and practical examples for concatenating slices.

Understanding the append() Method

The append() method in Golang is designed to add elements to the end of a slice. It appends new elements and returns the updated slice. Here’s a breakdown of the method:

func append(s []T, vs ...T) []T
  • s: A slice of type T.
  • vs: Additional T values to append to the slice.

Concatenating Slices in Golang

When merging slices using append(), the method returns a new slice containing all the elements of the original slice plus the provided values. This ensures a seamless integration of multiple slices.

Initializing and Declaring Slices

To declare and initialize slices, use the following syntax:

s1 := []int{3, 4, 6, 8, 12}
s2 := []string{"go", "learn", "example"}

Merging Two Slices – Practical Example

Let’s dive into a practical example demonstrating how to merge two slices:

package main

import "fmt"

func main() {
  a := []int{1, 12, 33, 44, 45}
  b := []int{10, 19, 18, 94, 50}

  fmt.Printf("a: %v\n", a)
  fmt.Printf("cap(a): %v\n", cap(a))

  fmt.Printf("b: %v\n", b)
  fmt.Printf("cap(b): %v\n", cap(b))

  x := []int{}
  x = append(a, b...)

  fmt.Printf("\n######### After Concatenation #########\n")
  fmt.Printf("x: %v\n", x)
  fmt.Printf("cap(x): %v\n", cap(x))
}

Output:

a: [1 12 33 44 45]
cap(a): 5
b: [10 19 18 94 50]
cap(b): 5

######### After Concatenation #########
x: [1 12 33 44 45 10 19 18 94 50]
cap(x): 10

This concise guide equips you with the knowledge to effectively merge slices in Golang using the append() method, facilitating streamlined handling of your data.

Check Also: