How Golang Range Works?

Read Time:50 Second

Range can be used with an array, string, map or channels. During each iteration, range can return one or two values based on the type of collection you are iterating. Following table, provides an overview of what range returns during iteration.

Range expression1st Value2nd Value(Optional)
Array or slice a [n]Eindex i inta[i] E
String s string typeindex i intrune int
map m map[K]Vkey k Kvalue m[k] V
channel c chan Eelement e Enone
returns

Go code range

package main

import "fmt"

func main() {
	/* create a slice */
	numbers := []int{0, 1, 2, 3, 4, 5, 6, 7, 8}

	/* print the numbers */
	for i := range numbers {
		fmt.Println("Slice item", i, "is", numbers[i])
	}

	/* create a map*/
	countryCapitalMap := map[string]string{"France": "Paris", "Italy": "Rome", "Japan": "Tokyo"}

	/* print map using keys*/
	for country := range countryCapitalMap {
		fmt.Println("Capital of", country, "is", countryCapitalMap[country])
	}

	/* print map using key-value*/
	for country, capital := range countryCapitalMap {
		fmt.Println("Capital of", country, "is", capital)
	}
}

Reference: https://www.tutorialkart.com

Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %