Golang: Iterate Array, Map

By Xah Lee. Date: . Last updated: .

Iterate Slice or Array

for i, v := range slice {body}

iterate slice, where i is current index and v the value.

If a variable is not used, name it _, else compiler complains. The _ is called blank identifier. e.g. for _, v := range slice {body}.

package main

import "fmt"

func main() {
	var numArray = []int{9, 2, 8, 61}
	for i, x := range numArray {
		fmt.Println(i, x)
	}
}

/*
0 9
1 2
2 8
3 61
*/

Iterate Map

for key, val := range map { body }
  • Iterate thru map, each time with key key and value val in body.
  • If you don't need key or val, name it _, else compiler will complain. The _ is called blank identifier.
package main

import "fmt"

func main() {

	var xx = map[string]int{"a": 1, "b": 2}

	for kk, vv := range xx {
		fmt.Printf("%v, %v\n", kk, vv)
	}
	// prints
	// a, 1
	// b, 2

}

Golang, array and slice