Да, вы можете положиться на заказ, потому что канал a
небуферизован.
Обмен данными по небуферизованному каналу успешен только тогда, когда отправитель и получатель готовы.Отправитель не выполняет после оператора a <- x
, пока значение не будет получено.Из этого следует, что значения принимаются в порядке отправки.
Порядок не гарантируется, если канал a
буферизован.Получатель может не выполняться, пока не будут отправлены оба значения.Когда получатель выполняет выполнение после отправки значений, нет гарантии, какая ветвь выбора будет выполняться первой.