Sobes.tech
Junior — Middle

O que acontece se tentar ler dados de um canal que ainda não foi inicializado?

sobes.tech IA

Resposta da IA

Se tentar ler dados de um canal em Go que não foi inicializado (ou seja, é nil), a operação de leitura ficará bloqueada para sempre. Isso fará com que a goroutine que tenta ler desse canal fique presa, pois o canal não existe e não pode transmitir dados.

Exemplo:

var ch chan int // ch é nil

func main() {
    fmt.Println(<-ch) // fica bloqueado para sempre
}

Para evitar isso, o canal deve ser inicializado usando make, por exemplo: ch := make(chan int).