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.