Go · Intermediário · Inglês · Técnico
closed channel
Channel encerrado com close. Receber dele devolve os valores restantes e depois o zero value sem bloquear; enviar para ele provoca panic.
Onde usar
Quem produz os dados fecha o channel para avisar que acabou, e o consumidor usa range ou o segundo valor do recebimento. Só o emissor deve fechar.
Em código
ch := make(chan int, 1)
ch <- 7
close(ch)
v, ok := <-ch // 7 true
v, ok = <-ch // 0 false
fmt.Println(v, ok)Exemplos
Receiving from a closed channel returns the zero value immediately.
Receber de um channel fechado devolve o zero value na hora.
The producer closes the channel when it has no more data.
O produtor fecha o channel quando não tem mais dados.
Cuidado
Fechar duas vezes ou enviar para um channel fechado causa panic; fechar não é obrigatório para liberar memória.
Sinônimos
channel fechado