Go语言通道怎么声明

通道

在go语言中,并发中传递数据是通过通道进行数据传递,通道可用于两个 goroutine 之间通过传递一个指定类型的值来同步运行和通讯。操作符 <- 用于指定通道的方向,发送或接收。如果未指定方向,则为双向通道。

ch <- v    // 把 v 发送到通道 ch     v := <-ch  // 从 ch 接收数据                // 并把值赋给 v

*  声明一个通道很简单,我们使用chan关键字即可,通道在使用前必须先创建:    

ch := make(chan int)

代码示例

package main

import "fmt"

func sum(s []int, c chan int) {
        sum := 0
        for _, v := range s {
                sum += v
        }
        c <- sum // 把 sum 发送到通道 c
}

func main() {
        s := []int{7, 2, 8, -9, 4, 0}

        c := make(chan int)
        go sum(s[:len(s)/2], c)
        go sum(s[len(s)/2:], c)
        x, y := <-c, <-c // 从通道 c 中接收

        fmt.Println(x, y, x+y)
}

/*************************************************
输出结果
-5 17 12
*************************************************/

原创文章,作者:OQTEG,如若转载,请注明出处:https://www.beidanyezhu.com/a/30423.html

(0)
OQTEG的头像OQTEG
上一篇 2025-02-18 17:34:28
下一篇 2025-02-18

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

分享本页
返回顶部