什么是“ channel1 <-<-channel2”?

时间:2019-09-24 09:06:00

标签: go concurrency channels

在并发执行模式(https://www.youtube.com/watch?v=f6kdp27TYZs)中,有一个示例代码如下:

func fanIn(in1 <-chan string) <-chan string {
    c:=make(chan string)
    go func() { 
        for {
            c <- <-in1 
        } 
    }() 
    return c
}

对我来说,这c <- <-in1很奇怪。什么意思?

1 个答案:

答案 0 :(得分:0)

c <- <-in1代表:

in1Val := <-in1 // read from channel in1
c <- in1Val // write the value from in1 channel to `c` channel

如果您是第一次编写此类代码,请使用更多详细代码,以更好地了解情况。