Go · Intermediário · Português · Técnico
direção de channel
Restrição no tipo do channel para só enviar (chan<- T) ou só receber (<-chan T). Documenta a intenção da função, e o compilador impede o uso contrário.
Onde usar
Assinaturas de produtores e consumidores usam direção para deixar claro quem escreve e quem lê. Um chan bidirecional converte implicitamente para uma direção, mas não o inverso.
Em código
func produz(out chan<- int) {
out <- 1
}
func consome(in <-chan int) int {
return <-in // in <- 1 não compila
}Exemplos
A função recebe um channel só de leitura, então não consegue enviar nada.
Declarei o parâmetro como chan<- int para deixar claro que ele só produz.
Cuidado
Não confunda a posição da seta: chan<- T é só envio e <-chan T é só recebimento; a seta aponta para onde o dado vai.
Sinônimos
channel somente leitura ou escrita