28 lines
421 B
Go
28 lines
421 B
Go
package main
|
||
|
||
import "fmt"
|
||
|
||
func main() {
|
||
c := make(chan int)
|
||
|
||
go func() {
|
||
for i := 0; i < 5; i++ {
|
||
c <- i
|
||
}
|
||
// close可以关闭一个channel
|
||
close(c)
|
||
}()
|
||
|
||
for {
|
||
// 如果ok为true表示channel没有关闭,如果ok为false表示channel已经关闭
|
||
if data, ok := <-c; ok {
|
||
fmt.Println(data)
|
||
} else {
|
||
fmt.Println("channel c 已被关闭")
|
||
break
|
||
}
|
||
}
|
||
|
||
fmt.Println("Main finished ...")
|
||
}
|