Sobes.tech
Junior — Middle

Como funciona a gravação num canal que ainda não foi inicializado?

sobes.tech IA

Resposta da IA

No Go, o canal deve ser inicializado usando a função make antes de ser utilizado. Se tentar escrever num canal que não foi inicializado (ou seja, igual a nil), a operação de escrita ficará bloqueada para sempre, pois o canal não existe e não pode aceitar valores. Isto levará a um deadlock se não houver outras goroutines que desbloqueiem a escrita.

Exemplo:

var ch chan int // ch == nil

func main() {
    ch <- 1 // bloqueio, pois ch == nil
}

Assim, escrever num canal não inicializado não funciona e leva ao bloqueio do programa.