已采纳回答 / 记忆浅谈
这里的‘在被接受数据之前’指的是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
最新回答 / 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
最赞回答 / up_robin
如果填的是0,代表`myChannel`是一个非缓存通道。发送方在向通道值发送数据的时候会立即被阻塞,直到有某一个接收方已从该通道值中接收了这条数据。所以在第一个匿名函数执行到`sender &ooc- nu...
2018-10-21