最贊回答 / gypsy_gyq
1、channel 是分緩沖通道和非緩沖通道的,在 make channel 的時候,如果沒有指定通道容量,那么這就是一個非緩沖通道。非緩沖通道的特點是,必須發(fā)送和接收同時進行,否則就會等待;而緩沖通道不需要發(fā)送和接收同時進行,但是當通道滿的時候,發(fā)送方也會阻塞,必須等到接收方從通道中拿走數(shù)據(jù)后才能繼續(xù)發(fā)送。2、所以上面的代碼沒有指定容量,是一個非緩沖通道,那么必然是發(fā)送和接收同時進行的,也可以理解為 放一個 range 一個。
2020-03-15
最贊回答 / 慕仔3302377
只要一個類型,實現(xiàn)了一個接口的任意方法,都能隱式轉(zhuǎn)換為該接口類型 可以看下具體的代碼 //?io.go? //?io.Writer?接口定義 type?Writer?interface?{??? ???Write(p?[]byte)?(n?int,?err?error) } //?file.go //?File結(jié)構(gòu)體write方法 func?(f?*File)?Write(b?[]byte)?(n?int,?err?error)?{ ????//?....... }
2020-02-25
最新回答 / 醒說信做_陳滿
如果你單機跑整個程序(你的機器內(nèi)存8G,但你需要派排序的文件8.5G)這樣子會導致程序因為內(nèi)存空間不足導致panic,因此通過分片(分塊)的方法,將大文件分子別在不同的機器上面進行處理,最終再由一個機器分別匯總結(jié)果并輸出到文件。
2019-11-07
最新回答 / 慕絲8833399
是覆蓋了,覆蓋了8個字節(jié),剛好是一個int。然后這個buffer轉(zhuǎn)成int,并由out channel 發(fā)送出去
2019-07-11