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