我正在尝试编写这样的函数,但我无法声明通道切片func fanIn(set <-[]chan string) <-chan string { c := make(chan string) for i := range set { go func() { for {c <-set[i]} }() } return c}在 Go 中是否可以将一段通道作为参数?调用示例set := [2]chan string{mylib.Boring("Joe"), mylib.Boring("Ann")}c := fanIn(set)如果我能做到func fanIn(input1, input2 <-chan string) <-chan string {我认为应该可以有“<-chan string”的切片或数组更新:func fanIn(set []<-chan string) <-chan string { c := make(chan string) for i := range set { go func() { for { x := <-set[i] c <- x } }() } return c}func main() { set := []<-chan string{mylib.Boring("Joe"), mylib.Boring("Ann"), mylib.Boring("Max")} c := fanIn(set) for i := 0; i < 10; i++ { fmt.Println(<-c) } fmt.Println("You're boring: I'm leaving.")}
1 回答
- 1 回答
- 0 关注
- 175 浏览
添加回答
举报
0/150
提交
取消