Golang入门到项目实战 | golang并发编程之channel的遍历

Posted 一个热爱编程的通信人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang入门到项目实战 | golang并发编程之channel的遍历相关的知识,希望对你有一定的参考价值。

方法1 for循环+if判断

package main

import (
    "fmt"
)

func main() 
    c := make(chan int)

    go func() 
        for i := 0; i < 10; i++ 
            c <- i
        
        close(c)
    ()

    for 
        if data, ok := <-c; ok 
            fmt.Printf("data: %v\\n", data)
         else 
            break
        
    

运行结果

[Running] go run "d:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01\\test.go"
data: 0
data: 1
data: 2
data: 3
data: 4
data: 5
data: 6
data: 7
data: 8
data: 9

方法2 for range

package main

import (
    "fmt"
)

func main() 
    c := make(chan int)

    go func() 
        for i := 0; i < 10; i++ 
            c <- i
        
        close(c)
    ()

    for v := range c 
        fmt.Printf("v: %v\\n", v)
    

运行结果

[Running] go run "d:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01\\test.go"
v: 0
v: 1
v: 2
v: 3
v: 4
v: 5
v: 6
v: 7
v: 8
v: 9

注意:如果通道关闭,读多写少,没有了就是默认值,例如,int就是0,如果没有关闭就会死锁。

以上是关于Golang入门到项目实战 | golang并发编程之channel的遍历的主要内容,如果未能解决你的问题,请参考以下文章

Golang入门到项目实战 golang并发变成之通道channel

Golang入门到项目实战 golang for循环语句

Golang入门到项目实战 第一个golang应用

Golang入门到项目实战 golang匿名函数

Golang入门到项目实战 golang 函数

Golang入门到项目实战 golang方法