課程
/后端開發
/Go
/Go語言第一課
close(ch4)后,下一次循環還會進入case語句嗎?就算沒有close,ch4也是空的了啊。這里不太明白
2017-08-01
源自:Go語言第一課 7-4
正在回答
其實case可以理解為嘗試讀取ch4,這時會發生兩種情況,一種是讀取到數據,一種是沒讀取到數據,如果讀取不到數據,則default條件成立;如果讀取到數據,這時又分為兩種情況,一種是讀取正常的數據,且通道也正常(ok為true);另外一種情況是通道關閉了,這時讀取到的值是:e為零值,這里為int的0,然后ok為false,表示通道已經關閉。所以,如果沒有close,第三次循環就會又進入 default 語句,然后ch4會再次被賦值,在第四次執行時,再次輸出1
慕粉3536494
慕姐9075699 回復 慕粉3536494
case和ch4是否關閉并沒有關系,即使ch4關閉,循環依舊會繼續執行。
ch4為空和ch4被關閉是兩種情況。
qq_YizX_hlsAFP
舉報
Go語言入門教程,編程之必備知識擴散,打好Go語言編程基礎
1 回答fallthrough語句僅能作為case語句中的最后一條語句出現。并且,包含它的case語句不能是其所屬switch語句的最后一條case語句。沒有理解這句話是什么意思
2 回答可以多個條件嗎
2 回答不明白為什么最后的輸出是“Case A.”
2 回答復制答案進去為毛不行的
1 回答chan 寫入疑問
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-05-03
其實case可以理解為嘗試讀取ch4,這時會發生兩種情況,一種是讀取到數據,一種是沒讀取到數據,如果讀取不到數據,則default條件成立;如果讀取到數據,這時又分為兩種情況,一種是讀取正常的數據,且通道也正常(ok為true);另外一種情況是通道關閉了,這時讀取到的值是:e為零值,這里為int的0,然后ok為false,表示通道已經關閉。所以,如果沒有close,第三次循環就會又進入 default 語句,然后ch4會再次被賦值,在第四次執行時,再次輸出1
2017-08-02
case和ch4是否關閉并沒有關系,即使ch4關閉,循環依舊會繼續執行。
ch4為空和ch4被關閉是兩種情況。