# Golang : Combine slices of complex numbers and operation example

Tags :

Extension from a previous tutorial on how to perform calculations with complex numbers. For this tutorial, we will learn how to perform simple operation such as changing the real and imaginary parts of a complex number. In particular on how to use the alphabet `i` to modify the imaginary value.

We will also learn how to combine two slices in a proper way with the `builtin` append function.

Here you go!

`````` package main

import (
"fmt"
)

var a = complex(2, 3)
var b = complex(4, 5)
var c = complex(6, 7)

func main() {
complexSliceA := []complex128{a, b, c}
complexSliceB := []complex128{b, c, a}

fmt.Println("A : ", complexSliceA)

fmt.Println("B : ", complexSliceB)

// add 2 for the real, but not the imaginary part
fmt.Println("Before : ", complexSliceA)
fmt.Println("After : ", complexSliceA+2)

// to change imaginary part, include the letter i
// for example, to add 2 ... use 2i
fmt.Println("Before : ", complexSliceA)
fmt.Println("After : ", complexSliceA+2i)

// iterate over a complex slice example
for item, data := range complexSliceA {
fmt.Printf("Item %d , complex number %v \n", item, data)
}

// preserve complexSliceA
temp := complexSliceA

// to combine two slices, use for loop and builtin append function
for index, _ := range complexSliceB {
complexSliceA = append(complexSliceA, complexSliceB[index])
}

// restore back
complexSliceC := complexSliceA
complexSliceA = temp

fmt.Println("C = A + B ", complexSliceC)

}
``````

Output:

A : [(2+3i) (4+5i) (6+7i)]

B : [(4+5i) (6+7i) (2+3i)]

Before : (2+3i)

After : (4+3i)

Before : (2+3i)

After : (2+5i)

Item 0 , complex number (2+3i)

Item 1 , complex number (4+5i)

Item 2 , complex number (6+7i)

C = A + B [(2+3i) (4+5i) (6+7i) (4+5i) (6+7i) (2+3i)]

References: