Я могу варьироваться по каналу, чтобы получить значение из него, но когда я пытаюсь прочитать из массива каналов, это выдает мне ошибку.
Все, что я делаю, это создание массива канала, который содержит 2 канал, первый содержит значения от 1 до 5, а второй - от 6 до 10, и я просто хочу прочитать значения из массива самого канала.
Вот мой код:
package main
import "fmt"
func main() {
channelList := make([]chan int, 2)
for i := 0; i < 1; i++ {
channelList = append(channelList, make(chan int))
}
FChannel := make(chan int, 5)
for i := 1; i <= 5; i++ {
FChannel <- i // contain values from 1 to 5
}
close(FChannel)
channelList = append(channelList, FChannel)
SChannel := make(chan int, 5)
for j := 6; j <= 10; j++ {
SChannel <- j // contain values from 6 to 10
}
close(SChannel)
channelList = append(channelList, SChannel)
for _, c := range channelList {
for range c {
fmt.Println(<-c)
}
}
}
но это дает мне эту ошибку:
фатальная ошибка: все программы находятся в спящем режиме - тупик!
режим 1 [канал получен (ноль чан)]: главный. main ()