Go For Each

Go language does not have a builtin forEach kind of statement. But the nearest kind of syntax could be achieved using for loop with range as shown in the following.

</>
Copy
for index, element := range x {
    //code
}

During each iteration, we get access to the index of the element, and the element itself.

Examples

In the following program, we take a slice of integers in slice1 and loop for each element in the slice.

example.go

</>
Copy
package main

import "fmt"

func main() {
	x := []int{10, 20, 30, 40, 50}

	for index, element := range x {
		fmt.Println(index, " - ", element)
	}
}

Output

0  -  10
1  -  20
2  -  30
3  -  40
4  -  50

Let us do the same for an array. Take an array of integers and loop for each of the element in it.

example.go

</>
Copy
package main

import "fmt"

func main() {
	x := [5]int{11, 22, 33, 44, 55}

	for index, element := range x {
		fmt.Println(index, " - ", element)
	}
}

Output

0  -  11
1  -  22
2  -  33
3  -  44
4  -  55

If we do not need index while looping, we may provide underscore symbol instead of index.

example.go

</>
Copy
package main

import "fmt"

func main() {
	x := [5]int{11, 22, 33, 44, 55}

	for _, element := range x {
		fmt.Println(element)
	}
}

Output

11
22
33
44
55

The same process holds true for element as well.

example.go

</>
Copy
package main

import "fmt"

func main() {
	x := [5]int{11, 22, 33, 44, 55}

	for index, _ := range x {
		fmt.Println(index)
	}
}

Output

0
1
2
3
4

Conclusion

In this Golang Tutorial, we learned how to write a for each loop in Go, with the help of example programs.