Sobes.tech
Junior — Middle

O que acontece se realizar uma operação de escrita num canal vazio (nil) na linguagem Go?

sobes.tech IA

Resposta da IA

Se tentar gravar um valor num canal nil em Go, o programa ficará bloqueado para sempre (deadlock). Isto acontece porque o canal nil não está inicializado e não pode aceitar ou enviar valores.

Exemplo:

var ch chan int // ch == nil

func main() {
    ch <- 1 // aqui o programa irá ficar bloqueado
}

Para evitar isso, o canal deve ser inicializado com make, por exemplo:

ch := make(chan int)

Só depois disso, é seguro escrever e ler do canal.