Go for: Difference between revisions
Jump to navigation
Jump to search
Line 54: | Line 54: | ||
} | } | ||
</pre> | </pre> | ||
More about <tt>range</tt>: | |||
<blockquote style="background-color: #f9f9f9; border: solid thin lightgrey;"> | |||
:<tt>[[Go Keyword range|range]]</tt> | |||
</blockquote> |
Revision as of 05:27, 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 }
More about range: