Sobes.tech
Junior — Middle

Mi történik, ha írni próbálsz egy üres (nil) csatornába a Go nyelvben?

sobes.tech MI

Válasz az MI-től

Ha megpróbálsz értéket írni egy nil csatornába Go-ban, a program örökre blokkolódik (deadlock). Ez azért történik, mert a nil csatorna nincs inicializálva, és nem képes értékeket fogadni vagy küldeni.

Példa:

var ch chan int // ch == nil

func main() {
    ch <- 1 // itt a program megakad
}

Ennek elkerülése érdekében a csatornát make segítségével kell inicializálni, például:

ch := make(chan int)

Csak ezután lehet biztonságosan írni és olvasni a csatornából.