Что такое канал в Go и как он передаёт данные?

Канал Go передаёт значения заданного типа и синхронизирует отправителя с получателем. Копируется значение элемента, но указатели внутри могут ссылаться на общие данные.

Короткий ответ

Что ответить на собеседовании

Канал Go передаёт значения заданного типа и синхронизирует отправителя с получателем. Копируется значение элемента, но указатели внутри могут ссылаться на общие данные.

Подробный разбор

Ответ с пояснениями

Канал Go передаёт значения заданного типа и синхронизирует отправителя с получателем. Копируется значение элемента, но указатели внутри могут ссылаться на общие данные.

Небуферизованный канал требует встречи отправки и чтения, буферизованный хранит ограниченную очередь. Передача указателя или слайса не создаёт глубокую копию объекта, поэтому нужно договориться о владении. Канал закрывают, когда отправок больше не будет; читатель проверяет ok либо завершает range после опустошения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее