遍历通道数组的解决方法可以通过使用for循环来实现。以下是一个示例代码:
package main
import "fmt"
func main() {
// 创建一个包含3个通道的数组
channels := [3]chan int{
make(chan int),
make(chan int),
make(chan int),
}
// 向每个通道发送数据
for _, ch := range channels {
go func(c chan int) {
for i := 0; i < 5; i++ {
c <- i
}
close(c)
}(ch)
}
// 从每个通道接收数据
for i, ch := range channels {
for num := range ch {
fmt.Printf("通道%d接收到数据:%d\n", i, num)
}
}
}
在上述示例中,首先创建一个包含3个通道的数组。然后,通过使用for循环向每个通道发送一些数据,并在发送完数据后关闭通道。接着,通过另一个嵌套的for循环,从每个通道接收数据,并打印出来。最后,程序输出了每个通道接收到的数据。
请注意,这里使用了协程(goroutine)来并发地发送和接收数据,以模拟并行处理通道数组的情况。