При передаче канала в функцию — передаётся ли он по значению или по ссылке?

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

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

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

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

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

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

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

Присваивание параметру другого канала внутри функции не меняет переменную вызывающего. Но отправка, получение и close действуют на общий канал. Направления chan<- T и <-chan T ограничивают разрешённые операции на уровне типов.

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

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

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

Подробнее