Каналы (chan) — это типизированные очереди (FIFO), которые позволяют горутинам обмениваться данными без явных блокировок.
В языке Go канал имеет определенный тип, то есть тип значений, которые он может передавать из одной горутины в другую. Для определения канала применяется ключевое слово chan:
chan тип_элемента
-- фактически так объявляется что-то вподе составного типа, т.е. на пример "канал целых чисел".
Ниже мы посмотрим как это работает в коде.