Каналы в Go | OTUS

Курсы

Программирование
PHP Developer. Basic
-50%
Специализация PHP Developer iOS Developer. Professional Golang Developer. Professional Python Developer. Basic iOS Developer. Basic Архитектура и шаблоны проектирования MS SQL Server Developer Highload Architect Специализация C++ Developer Cloud Solution Architecture Специализация Java-разработчик Android Developer. Professional Программист С Специализация Fullstack developer VR/AR - разработчик Microservice Architecture Software Architect Team Lead Web-разработчик на Python Rust Developer NoSQL C# Developer. Professional Разработчик программных роботов (RPA) на базе UiPath и PIX Kotlin Backend Developer React.js Developer Node.js Developer Flutter Mobile Developer Symfony Framework C# Developer. Basic Unreal Engine Game Developer Groovy Developer
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

Каналы в Go

GoPro_Headline_970x70-1801-dc9277.png

В языке программирования Go каналами существуют типизированные «каналы», по которым разработчик может посылать и получать значения, используя для этого оператор <-. Давайте посмотрим, как это выглядит на практике.

1-1801-9da707.png

Обратите внимание, что данные перемещаются в направлении стрелки.

Каналы, точно так же, как срезы и карты, должны создаваться непосредственно перед использованием:

2-1801-56f1d9.png

По дефолту как отправление, так и получение блокируются до того момента, пока вторая сторона готова не будет. Такое положение вещей дает возможность Go-процедурам синхронизироваться без какого-либо явного применения условных переменных и блокировок.

Код ниже суммирует числа среза и распределяет работу между Go-процедурами. Когда обе Go-процедуры закончат свои вычисления, произойдет вычисление итогового результата.

3-1801-a6328b.png

Таким образом, вывод будет следующим:

-5 17 12

По материалам блога https://golang-blog.blogspot.com/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться