Golang loops: Difference between revisions
From wikinotes
No edit summary |
|||
Line 23: | Line 23: | ||
= For Loops = | = For Loops = | ||
<blockquote> | <blockquote> | ||
== | == Infinite == | ||
<blockquote> | |||
<syntaxhighlight lang="go"> | |||
for { | |||
// ... | |||
} | |||
</syntaxhighlight> | |||
</blockquote><!-- Infinite --> | |||
== Initializer / Condition == | |||
<blockquote> | <blockquote> | ||
initializer/condition based loops | initializer/condition based loops | ||
Line 40: | Line 49: | ||
</blockquote><!-- initializer/condition --> | </blockquote><!-- initializer/condition --> | ||
== | == Over condition == | ||
<blockquote> | <blockquote> | ||
<syntaxhighlight lang="go"> | <syntaxhighlight lang="go"> | ||
Line 50: | Line 59: | ||
</blockquote><!-- condition --> | </blockquote><!-- condition --> | ||
== | == Over arrays/maps == | ||
<blockquote> | <blockquote> | ||
iterating over arrays/maps | iterating over arrays/maps |
Latest revision as of 23:15, 6 June 2022
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' } } } }