在Concurrency Go Patterns(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
。这是什么意思? 最佳答案
c <- <-in1
代表:
in1Val := <-in1 // read from channel in1
c <- in1Val // write the value from in1 channel to `c` channel
如果您是第一次编写此类代码,请使用更多详细代码,以更好地了解情况。