已采納回答 / 記憶淺談
這里的‘在被接受數據之前’指的是ch<-1存數據吧。緩沖的channel:保證往緩沖中存數據先于對應的取數據,簡單說就是在取的時候里面肯定有數據,否則就因取不到而阻塞。所以緩沖的channel可能在取數據的時候發生阻塞。非緩沖的channel:保證取數據先于存數據,就是保證存的時候肯定有其他的goroutine在取,否則就因放不進去而阻塞。所以非緩沖的channel可能在存數據的時候會發生阻塞。
2019-04-07
已采納回答 / qq_冥_6
可以看下這篇文章, 有詳細解析 https://www.cppentry.com/bencandy.php?fid=78&aid=216871&page=1
2019-04-04
最贊回答 / 慕沐4218383
不可以,因為第一個myDog 是有&號來接指針的? 但是第二個沒有用&來接? ?如果要傳指針(*) 就要用&來接收? 那么就要把myDog都用&來接??
2019-02-14
最新回答 / Gininch
取地址符號就是獲取到被取地址的變量的一個指針。在這里看的話,前一句是將myDog的一個指針類型轉換為空接口,第二句是將myDog這個變量類型轉換為空接口。
2019-01-20
最贊回答 / 七重八重棣棠花
找到錯誤了,題干的括號多了一個,我重置代碼出現的是:package mainimport (?? ? "fmt"?)func main() {? ? // 聲明一個string類型變量并賦值? ? var str1 string = "\\\""?? ??? ? // 這里用到了字符串格式化函數。其中,%q用于顯示字符串值的表象值并用雙引號包裹。? ? fmt.Printf("用解釋型字符串表示法表示的 %q 所代表的是 %s。\n", str1, ``))}最后一句的括號多了,不是我寫的,題給我的時候就...
2019-01-06
最贊回答 / 慕圣2123299
因為非緩沖通道不會緩存任何數據,發送方在向通道值發送數據的時候會立即被阻塞,直到有某一個接收方已從該通道值中接收了這條數據。所以myChannel應定義為非緩沖通道,才會在執行接收之后再執行發送的結果。
2018-11-11