Golang loops
From wikinotes
Breaking, Continuing, etc.
break // exit loop without finishing continue // skip to next iterationfor i := 0; i < 10; i++ { // skip to next iteration if i % 2 { continue } // exit loop immediately if i == 5 { break } }
For Loops
Infinite
for { // ... }Initializer / Condition
initializer/condition based loops
for i := 0; i < 10; i++ { sum += i }initializer/condition based loops with multiple variables
for i, j :- 0, 0; i < 10; i, j = i+1, j+1 { // ... }Over condition
i := 0 for i < 5 { i++ }Over arrays/maps
iterating over arrays/maps
// iterate key/values in map for key, value := range oldMap { fmt.Println(key + "=" + value) } // iterate only keys in map (simply don't assign val) for key := range oldMap { fmt.Println(key) } // iterate only values in map for _, value := range oldMap { fmt.Println(value) }Labels
Go has a GOTO-like syntax for supporting breaking out of complex logic.
func main() { Loop: // <-- label, can be any word for i < 5 { for j < 5 { if i == 3 && j == 3 { break Loop // <-- breaks out of all loops defined under label 'Loop' } } } }