Go for: Difference between revisions
Jump to navigation
Jump to search
Line 39: | Line 39: | ||
=<tt>for</tt> Controlled by a "range" Clause= | =<tt>for</tt> Controlled by a "range" Clause= | ||
A <tt>for</tt> statement with a "range" clause iterates through all entries of an array, slice, string or map, or values received on a channel. For each entry it assigns iteration values to corresponding iteration variables if present and then executes the block: | |||
<pre> | |||
var a [10]string | |||
for i, s := range a { | |||
// type of i is int | |||
// type of s is string | |||
// and s == a[i] | |||
// do something | |||
} | |||
</pre> |
Revision as of 05:25, 23 March 2016
External
- Language Specification for Statements https://golang.org/ref/spec#For_statements
Internal
Overview
A for statement specifies repeated execution of a block. For more details on blocks, see Go blocks.
The iteration is controlled by a condition, a "for" clause, or a "range" clause.
for Controlled by a Condition
for a < b { a *= 2 }
The condition is evaluated before each iteration. If the condition is absent, is equivalent with true.
for { // do this forever }
for Controlled by a "for" Clause
for controlled by a "for" clause is equivalent with for controlled by a condition, but it has an extra init and post statement:
for i := 0; i < 10; i++ { // do something }
for Controlled by a "range" Clause
A for statement with a "range" clause iterates through all entries of an array, slice, string or map, or values received on a channel. For each entry it assigns iteration values to corresponding iteration variables if present and then executes the block:
var a [10]string for i, s := range a { // type of i is int // type of s is string // and s == a[i] // do something }