Канал передаётся по значению, как и остальные аргументы Go. Копия значения канала ссылается на тот же внутренний объект, поэтому операции видны всем участникам.
При передаче канала в функцию — передаётся ли он по значению или по ссылке?
Канал передаётся по значению, как и остальные аргументы Go. Копия значения канала ссылается на тот же внутренний объект, поэтому операции видны всем участникам.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Канал передаётся по значению, как и остальные аргументы Go. Копия значения канала ссылается на тот же внутренний объект, поэтому операции видны всем участникам.
Присваивание параметру другого канала внутри функции не меняет переменную вызывающего. Но отправка, получение и close действуют на общий канал. Направления chan<- T и <-chan T ограничивают разрешённые операции на уровне типов.