Очень легко сказать.
chanA <- anything
отправляет значение anything
на chanA
, независимо от того, что anything
.
chanA <- <- chanB
получаетзначение от chanB
и отправка его на chanA
.
Ваш второй оператор здесь:
Однако, если chanA имеет тип (chan <- string), он попытаетсяизвлечь строку из chanB </p>
это ваша проблема. foo <- bar
- это всегда операция отправки. Компилятор Go читает слева направо, и identifier <-
- это операция отправки.
Операция получения - это выражение, которое оценивает значение, поэтому оно может быть допустимо только в том случае, если значение будет допустимым, т.е. , компилятор уже должен встретиться с первой частью операции присваивания, операции отправки, вызова функции и т. д.