Go for

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

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
}