When looping through an array, the first variable returned is the index, and the second variable returned is the value:
array := []int{2, 3, 4}
for index, value := range array {
fmt.Printf("Index: %s, Value: %s
", index, value)
}
What is returned when looping through map with the range clause. It is not the same as for array. There cannot be an index of a map anyway. Can we get key names?
As per the documentation of range clause, following are the returned values for different kinds of types that it is used with:
array or slice a [n]E
, *[n]E
, or []E
:
i int
a[i]
E (element at index i)string s string type
i int
int
(the unicode of the character. to get the actual character, simply cast like this: string(value)
)map m map[K]V
:
k K
m[k]
Vchannel c chan E:
e E