Golang iterate over Array [2 Methods]


GO

Author: Tuan Nguyen
Reviewer: Deepak Prasad

The type [n]T is an array of n values of type T. The expression var a [10]int declares a variable as an array of ten integers. For performing operations on arrays, the need arises to iterate over them. In this tutorial, we will walk through how to do that in Golang. Using for loop is best suited for this purpose in golang to iterate over an array.

 

Different methods to iterate over an array in golang

Method-1: Using for loop with range keyword

Here's an example of using <a href="https://go.dev/ref/spec#For_range">range</a> to loop through a string and an int array:

package main

import "fmt"

func main() {

	// an string array
	strArr := [5]string{"Ana", "Bob", "Clair", "Daniel", "East"}
	fmt.Println("String array:")

	// using for loop
	for index, element := range strArr {
		fmt.Println("At index", index, "element is", element)
	}

	// an int array
	strInt := [5]int{5, 15, 36, 42, 69}
	fmt.Println("Int array:")
	// using for loop
	for index, element := range strInt {
		fmt.Println("At index", index, "element is", element)
	}

}

Output:

String array:
At index 0 element is Ana
At index 1 element is Bob
At index 2 element is Clair
At index 3 element is Daniel
At index 4 element is East
Int array:
At index 0 element is 5
At index 1 element is 15
At index 2 element is 36
At index 3 element is 42
At index 4 element is 69

Explanation:

The keyword range specifies the range of iterations up to the length of arr. The variables index and element store the array's indexes and values, respectively.

We can omit the array's index with the blank identifier _ if we do not need to use it:

package main

import "fmt"

func main() {

	// an string array
	strArr := [5]string{"Ana", "Bob", "Clair", "Daniel", "East"}
	fmt.Println("String array:")

	// using for loop
	for _, element := range strArr {
		fmt.Println(element)
	}

}

Output:

String array:
Ana
Bob
Clair
Daniel
East

 

Method-2: Using for loop with len(array) function

len(arr): identify the length of an array. The example below demonstrate a loop to iterate over an array with len(array) function:

package main

import "fmt"

func main() {

	// an string array
	strArr := [5]string{"Ana", "Bob", "Clair", "Daniel", "East"}
	fmt.Println("String array:")

	// using for loop
	for i := 0; i < len(strArr); i++ {
		fmt.Println("At index", i, "element is", strArr[i])
	}

	// an int array
	strInt := [5]int{5, 15, 36, 42, 69}
	fmt.Println("Int array:")
	// using for loop
	for i := 0; i < len(strInt); i++ {
		fmt.Println("At index", i, "element is", strInt[i])
	}

}

Output:

String array:
At index 0 element is Ana
At index 1 element is Bob
At index 2 element is Clair
At index 3 element is Daniel
At index 4 element is East
Int array:
At index 0 element is 5
At index 1 element is 15
At index 2 element is 36
At index 3 element is 42
At index 4 element is 69

Explanation:

The variable i is initialized as 0 increase at every iteration until it reaches the value of the length of the array. Print command is given to print the elements at each index of the array one by one.

With the same idea but different implementation is shown below:

package main

import "fmt"

func main() {

	// an string array
	strArr := [5]string{"Ana", "Bob", "Clair", "Daniel", "East"}
	fmt.Println("String array:")

	// using for loop
	i := 0
	for range strArr {
		fmt.Println("At index", i, "element is", strArr[i])
		i++
	}
}

 

Summary

We have looked at how to quickly iterate over an array of type strings in Go in this article. To iterate over the int or string array that have created, we can use the range keyword or a loop with the len(array) function.

 

References

https://www.golinuxcloud.com/golang-for-loop/
https://go.dev/ref/spec#For_range
How do I iterate over an array of a custom type in Go?
In Go (golang), how to iterate two arrays, slices, or maps using one `range`

 

Tuan Nguyen

Tuan Nguyen

He is proficient in Golang, Python, Java, MongoDB, Selenium, Spring Boot, Kubernetes, Scrapy, API development, Docker, Data Scraping, PrimeFaces, Linux, Data Structures, and Data Mining. With expertise spanning these technologies, he develops robust solutions and implements efficient data processing and management strategies across various projects and platforms. You can connect with him on his LinkedIn profile.

Can't find what you're searching for? Let us assist you.

Enter your query below, and we'll provide instant results tailored to your needs.

If my articles on GoLinuxCloud has helped you, kindly consider buying me a coffee as a token of appreciation.

Buy GoLinuxCloud a Coffee

For any other feedbacks or questions you can send mail to admin@golinuxcloud.com

Thank You for your support!!

Leave a Comment