При чтении из закрытого канала можно получить все оставшиеся данные, которые были записаны до закрытия. После того, как канал опустошен, последующие операции чтения будут возвращать нулевое значение типа элемента канала и значение false в качестве второго возвращаемого значения, indicating that the channel is closed.
При отправке данных в закрытый канал произойдет паника времени выполнения.
При попытке закрыть уже закрытый канал также произойдет паника времени выполнения.
Можно проверить, закрыт ли канал, используя оператор ok при чтении:
go
Использование range с закрытым каналом позволяет последовательно читать данные до тех пор, пока канал не будет опустошен, после чего цикл автоматически завершится.
go