代码之家  ›  专栏  ›  技术社区  ›  Russiancold

如何在函数之间传递带有chan的vars

  •  1
  • Russiancold  · 技术社区  · 8 年前

    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 从中提取变量 pipe 在第二次出征之前。我想我可以简单地创建另一个频道,使这项工作。但也许用一个 管 ?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Venantius    8 年前

    你应该用第二个频道来做你想做的事。您可以使用单个通道并打开结果,但这并不是真正理想的情况—您基本上是在尝试将两种不同类型的对象放入同一个通道中,如果每个数据类型/预期转换只有一个通道,那么您的程序将变得更干净、更容易推理。