Go Keyword range: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
Line 6: Line 6:
=Overview=
=Overview=


<tt>range</tt> keyword is used to iterate over strings, arrays, slices, maps, channels and [[Go_Concepts_-_Functions#Varidic_Functions|variadic function arguments]]. It returns two values. On the first position is the index/kyes, and the second position is the value.  
<tt>range</tt> keyword is used to iterate over strings, arrays, slices, maps, channels and [[Go_Concepts_-_Functions#Varidic_Functions|variadic function arguments]]. It returns two values. On the first position is the index/key, and on the second position is the ''copy'' of the value in that element.


<blockquote style="background-color: Gold; border: solid thin Goldenrod;">
<blockquote style="background-color: Gold; border: solid thin Goldenrod;">

Revision as of 00:08, 3 April 2016

Internal

Overview

range keyword is used to iterate over strings, arrays, slices, maps, channels and variadic function arguments. It returns two values. On the first position is the index/key, and on the second position is the copy of the value in that element.

Note that only a first identifier is declared, that is the index and not the value, as the intuition would suggest. See examples below.

Iterating over Indices

var a [5]int
for i := range a {
   // i is the index
}

Iterating over Values

var a [5]int
for _, value := range a {
   // 'value' is the value
}

Iterating over Indices and Values

var a [5]int
for i, value := range a {
   // i is the index
   // 'value' is the value
}