Что такое каналы в Go, какие бывают, какие особенности?

Канал Go — типизированный механизм обмена значениями и синхронизации. Он может быть буферизованным, небуферизованным и ограниченным по направлению.

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

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

Канал Go — типизированный механизм обмена значениями и синхронизации. Он может быть буферизованным, небуферизованным и ограниченным по направлению.

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

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

Канал Go — типизированный механизм обмена значениями и синхронизации. Он может быть буферизованным, небуферизованным и ограниченным по направлению.

Отправка в небуферизованный канал ждёт получателя; в буферизованный — свободного места. Чтение из закрытого канала сначала забирает накопленные значения, затем возвращает нулевое значение и ok=false. Запись в закрытый канал паникует, операции с nil-каналом блокируются. select позволяет ждать нескольких операций и отмены, но не заменяет проектирование жизненного цикла отправителей.

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

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

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

Подробнее