# Golang : Arithmetic operation with numerical slices or arrays example

Tags : golang mathematics arithmetic slices-arrays

Got an email from a new comer to Golang from South Africa, he or she wanted to know how to perform simple operations like arithmetic on numerical slices. There is a package - GoNum - that can do a better job for these kind of problems ... which I reckon is more efficient for mathematical calculations than using Golang's standard slices. However, there is no harm to use slices if all you wanted is to perform some simple operations like plus, minus, multiplication or division on slices or array.

Below is an example of how to use slices for arithmetic operations:

```
package main
import (
"fmt"
)
func main() {
a := []int{1, 2, 3, 4}
fmt.Println("Original : ", a)
// a * 2
for i, _ := range a {
a[i] = a[i] * 2
}
fmt.Println("a * 2 : ", a)
// a + 10
for i, _ := range a {
a[i] = a[i] + 10
}
fmt.Println("a + 10 : ", a)
b := []int{5, 6, 7, 8}
fmt.Println("b : ", b)
lengthOfA := len(a)
// will cause non-constant array bound lengthOfA error
//c := [lengthOfA]int{}
// if c size is constant, it is ok to hardcode with size of 4 (hand counted)
// c := [4]int{}
// or to make your program more robust
// figure out the slice c's length during runtime with length of a slice
c := make([]int, lengthOfA)
// a + b
// FOR a slice to plus b slice, the size or number of elements in both slices must be the same!
for i, _ := range a {
c[i] = a[i] + b[i]
}
fmt.Printf("a + b : %v + %v = %v \n", a, b, c)
d := make([]int, lengthOfA)
// a * b
for i, _ := range a {
d[i] = a[i] * b[i]
}
fmt.Printf("a * b : %v * %v = %v \n", a, b, d)
// use float64 instead of int type for division
e := make([]float64, lengthOfA)
// a / b
for i, _ := range a {
e[i] = float64(a[i]) / float64(b[i])
}
fmt.Printf("a / b : %v * %v = %v \n", a, b, e)
f := make([]int, lengthOfA)
// a - b
for i, _ := range a {
f[i] = a[i] - b[i]
}
fmt.Printf("a - b : %v * %v = %v \n", a, b, f)
}
```

Output:

Original : [1 2 3 4]

a * 2 : [2 4 6 8]

a + 10 : [12 14 16 18]

b : [5 6 7 8]

a + b : [12 14 16 18] + [5 6 7 8] = [17 20 23 26]

a * b : [12 14 16 18] * [5 6 7 8] = [60 84 112 144]

a / b : [12 14 16 18] * [5 6 7 8] = [2.4 2.3333333333333335 2.2857142857142856 2.25]

a - b : [12 14 16 18] * [5 6 7 8] = [7 8 9 10]

**References:**

https://socketloop.com/tutorials/golang-combine-slices-of-complex-numbers-and-operation-example

https://www.socketloop.com/tutorials/golang-squaring-elements-in-array

#### See also : Golang : Combine slices of complex numbers and operation example

Tags : golang mathematics arithmetic slices-arrays

##### By Adam Ng

IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.

#### Advertisement

#### Tutorials

+5.3k Golang : Post data with url.Values{}

+17.2k Find and replace a character in a string in Go

+5.5k Golang : How to check if IP address is in range

+1.2k Javascript : Detect when console is activated and do something about it

+18.7k Golang : Move file to another directory

+1.9k Golang : Skip or discard items of non-interest when iterating example

+8k Golang : How to shuffle elements in array or slice?

+4.2k Setting $GOPATH environment variable for Unix/Linux and Windows

+16.2k Golang : How to create new XML file ?

+7.7k Golang : Convert date string to variants of time.Time type examples

+3.5k Android Studio : Simple input textbox and intercept key example

+1.6k Linux/Unix/MacOSX : Find out which application is listening to port 80 or use which IP version