ExpertiDict

Go · Intermediário · Inglês · Técnico

closed channel

/kloʊzd ˈtʃæn.əl/substantivo

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

Veja também

Todos os termos de Go