课程
/后端开发
/Go
/Go语言第一课
括号里填0与大于0的数为啥输出结果相反?
2016-03-31
源自:Go语言第一课 5-6
正在回答
在真机上运行结果是正常的。可断定是远程服务器的问题。望采纳
上古神龙 提问者
不懂不要瞎回答,本来填0和大于0的数运行结果就应该是相反的。
如果填的是0,代表`myChannel`是一个非缓存通道。发送方在向通道值发送数据的时候会立即被阻塞,直到有某一个接收方已从该通道值中接收了这条数据。
所以在第一个匿名函数执行到`sender <- number`语句之后,便被阻塞了,这时第二个匿名函数开始被执行。等到语句`fmt.Println("Received!", <-receiver)`被执行之后,通道内的值被清空了,`sender <- number`之后的语句继续被执行。所以就会看到
Received! 6 Sent!
这根python中的协程coroutine是类似的
那是因为代码的先后。
举报
Go语言入门教程,编程之必备知识扩散,打好Go语言编程基础
2 回答函数{}后为啥要括号()
4 回答能不要在最后要填的地方用括号吗?
3 回答谁能给解释一下为什么输出结果是这样
2 回答这里结果不太好吧
1 回答为啥点击“提交”按钮没反应?