【发布时间】:2019-01-08 03:14:03
【问题描述】:
有人可以帮我理解如何解释函数返回中的以下代码行 - (_, _
我了解该函数返回两个通道。但我不明白它是如何使用以下 (_, _
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
}`
【问题讨论】:
-
没有区别。原作者很“聪明”,以清晰为代价节省了几次击键,这是一个糟糕的权衡。