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 ...")
 | 
						||
}
 |