第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通道數(shù)組的范圍

通道數(shù)組的范圍

Go
慕的地8271018 2022-05-10 13:03:51
我可以在通道范圍內從中獲取值,但是當我嘗試從通道數(shù)組中讀取時,它給了我一個錯誤。我所做的只是創(chuàng)建包含 2 個通道的通道數(shù)組,第一個包含 1 到 5 的值,第二個包含 6 到 10 的值,我只想從通道本身的數(shù)組中讀取值。這是我的代碼:package mainimport "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)        }    }}但它給了我這個錯誤:致命錯誤:所有 goroutine 都處于休眠狀態(tài) - 死鎖!goroutine 1 [chan 接收 (nil chan)]: main.main()
查看完整描述

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


查看完整回答
反對 回復 2022-05-10
  • 1 回答
  • 0 關注
  • 102 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號