Что такое каналы в Go? Виды каналов, что происходит при записи/чтении из закрытого канала?

Канал Go передаёт типизированные значения между горутинами. Запись в закрытый канал паникует; чтение сначала отдаёт буфер, затем нулевое значение и ok=false.

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

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

Канал Go передаёт типизированные значения между горутинами. Запись в закрытый канал паникует; чтение сначала отдаёт буфер, затем нулевое значение и ok=false.

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

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

Канал Go передаёт типизированные значения между горутинами. Запись в закрытый канал паникует; чтение сначала отдаёт буфер, затем нулевое значение и ok=false.

Каналы бывают буферизованными и небуферизованными; тип может разрешать оба направления, только отправку или только чтение. Небуферизованная передача требует готового получателя. Операции с nil-каналом блокируются, close(nil) и повторное закрытие вызывают panic. Закрытие означает отсутствие новых отправок, а не удаление уже накопленных значений. Обычно закрывает канал сторона, которая управляет отправителями.

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

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

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

Подробнее