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..

2.总结

posted @ 2021-10-09 19:18  可可逗豆  阅读(74)  评论(0)    收藏  举报