在几个步骤的“选择”的声明收益的执行:
- 对于在声明中所有的情况下,渠道操作数接收操作和发送 语句的通道和右侧表达式按照源顺序精确评估一次,一旦输入 “select” tatement。结果是一组接收 或从中发送的通道,以及要发送的相应值。无论哪个(如果有的话) 通信操作被选择继续进行,将发生该评估中的任何一方的效果。尚未评估具有短变量声明或 赋值的RecvStmt左边的 表达式。
- 如果一个或多个通信可以继续进行,可以进行的单个通过一个统一的伪随机选择。 否则,如果存在默认情况,则选择该情况。如果 不是默认情况,则“选择”语句会阻塞,直到至少有一个通信可以继续进行。
- 除非所选情况是默认情况,否则将执行相应的通信操作。
- 如果选择的案例是带有短变量声明或赋值的RecvStmt,则会对左侧表达式进行求值并分配接收的值(或多个值) 。
- 执行所选案例的语句列表。