Um channel fornece um mecanismo para funções de execução simultânea para se comunicar, enviando e recebendo valores de um tipo de elemento especificado. O valor de um channel não inicializado é nil.
O operador opcional <- especifica a direção do channel, envio ou recebimento. Se nenhuma direção for fornecida, o channel é bidirecional.
chan T // pode ser usado para enviar/receber valores do tipo T
chan<- float64 // só pode ser usado para enviar float64
<-chan int // só pode ser usado para receber int
Um novo valor de channel inicializado pode ser criado usando a função integrada make(), que leva o tipo de channel e uma capacidade opcional como argumentos:
make(chan int, 100)