In a [previous](range) example we saw how `for` and `range` provide iteration over basic data structures. We can also use this syntax to iterate over values received from a channel. | ||
package main |
||
import "fmt" |
||
func main() { |
||
We'll iterate over 2 values in the `queue` channel. | queue := make(chan string, 2) |
|
queue <- "one" |
||
queue <- "two" |
||
close(queue) |
||
This `range` iterates over each element as it's received from `queue`. Because we `close`d the channel above, the iteration terminates after receiving the 2 elements. | for elem := range queue { |
|
fmt.Println(elem) |
one two |
|
} |
||
} |