亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

一個實在想不通的問題

這里為什么不行?。?

func?NetworkSource(addr?string)?<-chan?int??{
???out?:=?make(<-chan?int)
???go?func()?{
??????conn,?err?:=?net.Dial("tcp",addr)
??????if?err?!=?nil?{
?????????panic(err)
??????}
??????//?原代碼為何需要先得到?r?,再把r中的每一個數據傳給?out,?為什么不能直接用out!
??????out?=?ReaderSource(bufio.NewReader(conn),-1)
???}()
???return?out
}


正在回答

3 回答

兄弟你這個就離譜

0 回復 有任何疑惑可以回復我~
#1

weibo_研究所俄羅斯_0

無限阻塞
2019-12-27 回復 有任何疑惑可以回復我~

同問 為什么不直接return ReaderSource(buffio.NewReader(conn), -1)呢?

0 回復 有任何疑惑可以回復我~
#1

weibo_研究所俄羅斯_0

注意上方連接的 defer close()了 如果直接return ReaderSource 連接會立馬關閉掉 那整個ReaderSource相當于廢了! 所以這里如果把defer close()去掉 那么 確實可以像你這樣用
2019-12-27 回復 有任何疑惑可以回復我~

go func 執行前直接返回了out,外部調用使用out接數據,外部不知道readersource返回的channel,所以拿到了readersource返回的channel,導入到out。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

一個實在想不通的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號