zzz*_*zzz 13
<- 在语言规范中不止一个地方使用:
渠道类型:
的
<-操作者指定的信道的方向,发送或接收.如果没有给出方向,则通道是双向的.频道可能仅限于发送或仅通过转换或分配来接收.对于
ch通道类型的操作数,接收操作<-ch的值是从通道接收的值ch.值的类型是通道的元素类型.表达式将阻塞,直到值可用.从零通道接收永远阻止.从封闭通道接收总是成功,立即返回元素类型的零值.发送声明:
send语句在通道上发送值.通道表达式必须是通道类型,并且值的类型必须可分配给通道的元素类型.
SendStmt = Channel "<-" Expression .
Channel = Expression .
Run Code Online (Sandbox Code Playgroud)
receive运算符也是select语句的基本部分
Rob*_*rog 10
你已经得到了答案,但是这里有.
将通道视为消息队列.
如果通道位于左箭头(< - )运算符的右侧,则表示将条目出列.将条目保存在变量中是可选的
e <- q
Run Code Online (Sandbox Code Playgroud)
如果通道位于左箭头操作符的左侧,则表示将条目排入队列.
q <- e
Run Code Online (Sandbox Code Playgroud)
它可以在非缓冲的队列被用来实现类似Java中的"等待/通知"操作:约"出列"(接收),而不在变量存储还值得注意的一个协程被阻塞,等待出列/接收的信号然后另一个协程将这个信号排队/发送,其内容并不重要.(或者,发送者可能被阻止,直到接收者拉出消息)