четверг, 13 июня 2019 г.

Спецификация Go: оператор получения (receive operator)

Для операнда ch типа канала значение операции получения <-ch является значением, полученным из канала ch. Направление канала должно разрешать операции получения, а типом операции получения является тип элемента канала. Выражение блокируется до тех пор, пока значение не станет доступным. Получение от нулевого канала блокирует навсегда. Операция получения на закрытом канале всегда может продолжаться немедленно, давая нулевое значение типа элемента после получения любых ранее отправленных значений.

v1 := <-ch
v2 = <-ch
f(<-ch)
// ожидание тактового импульса 
// и сброс полученного значения
<-strobe  

Выражение получения, используемое в присваивании или инициализации специальной формы

x, ok = <-ch
x, ok := <-ch
var x, ok = <-ch
var x, ok T = <-ch

дает дополнительный нетипизированный логический результат, сообщающий, успешно ли установлено соединение. Значение ok равно true, если полученное значение было доставлено в результате успешной операции отправки в канал, или false, если это нулевое значение, сгенерированное из-за того, что канал закрыт и пуст.


Читайте также:


Комментариев нет:

Отправить комментарий