在线文档 > Golang练习 > 通道遍历
在之前的Go示例中,我们看到了 for 和 range 如何提供基本数据结构的遍历。我们也可以使用这种语法来遍历从通道收到的值。
package main
import "fmt"
func main() {
// 我们将在 `queue` 通道中遍历2个值。
queue := make(chan string, 2)
queue <- "one"
queue <- "two"
close(queue)
// 这个 `range` 遍历每个从 `queue` 收到的元素。
// 因为我们在上面使用了 `close` 关闭通道,所以在接收到2个元素后,遍历就会终止。
for elem := range queue {
fmt.Println(elem)
}
}
运行结果如下:
$ go run range-over-channels.go
one
two
此示例还表明,一个非空的通道也是可以关闭的, 并且,通道中剩下的值仍然可以被接收到。