22.channel与range
1.示例代码
package chapter15
import "fmt"
func RunChannel03() {
c := make(chan int)
go func() {
for i := 0; i < 5; i++ {
c <- i
}
// close 可以关闭一个channel
close(c)
}()
/*
for {
// ok 如果为true表示channel没有关闭,如果false表示channel已经关闭
if data, ok := <-c; ok {
fmt.Println(data)
} else {
break
}
}
*/
// 可以使用range来迭代不断操作channel
for data := range c {
fmt.Println(data)
}
fmt.Println("Main Finished..")
}
// 执行结果
0
1
2
3
4
Main Finished..