1 回答

TA貢獻1866條經(jīng)驗 獲得超5個贊
這是因為您首先創(chuàng)建了兩個沒有緩沖也沒有值的通道。然后,您附加兩個帶有緩沖和值的通道。
當您跨越通道時,您從第一個空通道讀取,這將永遠阻塞。
編輯
這是清理后的代碼:
package main
import "fmt"
func main() {
channelList := make([]chan int, 0, 2)
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 v := range c {
fmt.Println(v)
}
}
}
我得到的輸出是
1
2
3
4
5
6
7
8
9
10
- 1 回答
- 0 關注
- 102 瀏覽
添加回答
舉報