有人可以帮我了解如何在函数返回中解释以下代码行-(_,_
我知道该函数返回两个 channel 。但是我不明白如何使用以下命令(_,_
tee := func(
done <-chan interface{},
in <-chan interface{},
) (_, _ <-chan interface{}) {
out1 := make(chan interface{})
out2 := make(chan interface{})
go func() {
defer close(out1)
defer close(out2)
for val := range orDone(done, in) {
var out1, out2 = out1, out2
for i := 0; i < 2; i++ {
select {
case <-done:
case out1 <- val:
out1 = nil
case out2 <- val:
out2 = nil
}
}
}
}()
return out1, out2
}`
最佳答案
(_, _ <-chan interface{})
与(<-chan interface{}, <-chan interface{})
等效。除了源代码的长度和可读性之外,没有其他区别。
(<-chan interface{}, <-chan interface{})
返回值类型开始。 (ch1 <-chan interface{}, ch2 <-chan interface{})
以返回相同的2个 channel 。 (ch1, ch2 <-chan interface{})
(_, _ <-chan interface{})
瞧!一对相同类型的可读 channel 。
关于function - 返回两个 channel 的GoRoutine,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54079506/