Senior
Mi történik, amikor egy nem inicializált (nil) csatornába írunk?
sobes.tech MI
Válasz az MI-től
Go-ban, egy nem inicializált (nil) csatornára írás örökre blokkolja a goroutine-t, mivel a nil-csatorna nem kész adat fogadására vagy küldésére.
Példa:
var ch chan int // ch == nil
func main() {
ch <- 1 // örökre blokkolódik, mert a csatorna nil
}
Ez a viselkedés néha arra szolgál, hogy dinamikusan be- vagy kikapcsoljuk a csatornákat a select-ben, mivel a nil-csatornával végzett műveletek soha nem hajtódnak végre, és blokkolják a goroutine-t.