Code-Memo

For loop

Go has only one looping keyword: for. The same keyword covers C-style for, while, and for-ever.

Classic three-part for
for i := 0; i < 10; i++ {
	println(i)
}
Condition-only (while-style)
for n < 100 {
	n *= 2
}
Infinite loop
for {
	if shouldStop() {
		break
	}
}
Range over slice, array, string, map, channel
for i, v := range slice {
	_, _ = i, v
}

for k, v := range m {
	_, _ = k, v
}

for i, r := range "Hi" { // i byte offset, r rune
	_, _ = i, r
}

If you only need the value, use _ for the index/key.

Labels and break/continue

A labeled break exits the outer loop.

Outer:
	for i := 0; i < 3; i++ {
		for j := 0; j < 3; j++ {
			if i*j > 2 {
				break Outer
			}
		}
	}
Common pitfalls