Sobes.tech
Senior

Šta se dešava prilikom zapisivanja u neinicializovan kanal (nil)?

sobes.tech АИ

Одговор од АИ

U Go, zapisivanje u neinicijalizovani (nil) kanal dovodi do zauvek blokirane goroutine, jer nil-kanal nije spreman da prima ili šalje podatke.

Primer:

var ch chan int // ch == nil

func main() {
    ch <- 1 // zauvek blokira, jer je kanal nil
}

Ovo ponašanje se ponekad koristi za dinamičko uključivanje/isključivanje kanala u select, jer operacije sa nil-kanalom nikada ne izvršavaju i blokiraju goroutine.