gpt4 book ai didi

go - 如何在函数之间传递带有chan的变量

转载 作者:IT王子 更新时间:2023-10-29 02:08:47 26 4
gpt4 key购买 nike

我正在实现一个简单的机制,通过 channel 在两个 goroutine 之间传递变量。这是我的代码:

pipe := make(chan string)
go func(out chan string, data string) { //1st goroutine
out <- DataSignerMd5(data)
}(pipe, data)
go func(in chan string) { //2nd goroutine
data := <-in
in <- DataSignerCrc32(data)
}(pipe)
crcMdData := <- pipe

更有可能的是,crcMdData 在第二个 goroutine 之前从 pipe 中拉取一个变量。我想我可以简单地创建另一个 channel 来完成这项工作。但也许用单个 pipe 是可能的?

最佳答案

您应该使用第二个 channel 来完成您想要做的事情。您可以使用单个 channel 并打开结果,但这并不是很理想 - 您基本上是在尝试将两种不同类型的对象放入同一 channel ,并且您的程序最终会变得更加清晰和容易推断每种数据类型/预期转换是否只有一个 channel 。

关于go - 如何在函数之间传递带有chan的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52718845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com