Go 2 Generics? A (P)review[new] 试试写个 append()? 2020 © Changkun Ou · Go 夜读 · Go 2 Generics? A (P)review Example 5: Fan-in Fan-out 30 1 // generic fan-in -- by changkun 2 func Fanin(type T)(ins ...<-chan T) <-chan T { 3 buf 17 wg.Wait() 18 close(out) 19 }() 20 return out 21 } [new] 1 // generic fan-out -- by changkun 2 func Fanout(type T)(r func(max int) int, in <-chan T, outs ...chan T) { 30 码力 | 41 页 | 770.62 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a用。 从上面两个例子可以看出,使用通道来构建数据流系统是很简单和直观的。 从上例可以看出,通过使用数据聚合模块,我们可以很轻松地实现各个模块的 工作协程数量的扇入(fan-in)和扇出(fan-out)。 事实上,我们也可以使用一个简单的通道来代替数据聚合模块的角色。比如, 下面的代码使用两个通道代替了上例中的两个数据聚合器。 1| package main 2| 3| ... // 上面的模块工作者函数实现0 码力 | 821 页 | 956.82 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a但是有环拓扑结构的数据流系统在实践中很少用。 从上面两个例子可以看出,使用通道来构建数据流系统是很简单和直观的。 从上例可以看出,通过使用数据聚合模块,我们可以很轻松地实现各个模块的 工作协程数量的扇入(fan-in)和扇出(fan-out)。 事实上,我们也可以使用一个简单的通道来代替数据聚合模块的角色。比如, 下面的代码使用两个通道代替了上例中的两个数据聚合器。 package main ... // 上面的模块工作者函数实现0 码力 | 608 页 | 1.08 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a但是有环拓扑结构的数据流系统在实践中很少用。 从上面两个例子可以看出,使用通道来构建数据流系统是很简单和直观的。 从上例可以看出,通过使用数据聚合模块,我们可以很轻松地实现各个模块的工作 协程数量的扇入(fan-in)和扇出(fan-out)。 事实上,我们也可以使用一个简单的通道来代替数据聚合模块的角色。比如,下面 的代码使用两个通道代替了上例中的两个数据聚合器。 1| package main 2| 3| ... //0 码力 | 591 页 | 21.40 MB | 1 年前3
共 4 条
- 1













