Что делает "channel1 <- <-channel2"? - PullRequest
       14

Что делает "channel1 <- <-channel2"?

0 голосов
/ 24 сентября 2019

В 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. Что это значит?

1 Ответ

0 голосов
/ 24 сентября 2019

c <- <-in1 означает:

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

Если вы пишете такой код в первый раз - используйте больше этого подробного кода, чтобы понять, что происходит лучше.

...