Is there a foreach loop in Go?

tatsuhirosatou picture tatsuhirosatou · Oct 16, 2011 · Viewed 402.4k times · Source

Is there a foreach construct in the Go language? Can I iterate over a slice or array using a for?

Answer

Keith Thompson picture Keith Thompson · Oct 16, 2011

https://golang.org/ref/spec#For_range

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 and then executes the block.

As an example:

for index, element := range someSlice {
    // index is the index where we are
    // element is the element from someSlice for where we are
}

If you don't care about the index, you can use _:

for _, element := range someSlice {
    // element is the element from someSlice for where we are
}

The underscore, _, is the blank identifier, an anonymous placeholder.