channel与range、select
package mainimport "fmt"func main() {c := make(chan int)go func() {for i := 0; i < 5; i++ {c <- i}//close可以关闭一个channelclose(c)}()//可以使用range来迭代不断操作channelfor data := range c {fmt.Println(data)}fmt.Println("Main Finished..")
}
package mainimport "fmt"func fibonacii(c, quit chan int) {x, y := 1, 1for {select {case c <- x://如果c可写,则该case就会进来x = yy = x + ycase <-quit:fmt.Println("quit")return}}
}func main() {c := make(chan int)quit := make(chan int)//sub gogo func() {for i := 0; i < 10; i++ {fmt.Println(<-c)}quit <- 0}()//main gofibonacii(c, quit)
}