Sobes.tech
Junior — Middle

Šta će se desiti ako pokušate da pročitate podatke iz kanala koji još nije inicijalizovan?

sobes.tech АИ

Одговор од АИ

Ako pokušate da pročitate podatke iz kanala u Go koji nije inicijalizovan (tj. je nil), operacija čitanja će se zauvek blokirati. To će dovesti do toga da gorutina koja pokušava da čita iz takvog kanala ostane blokirana, jer kanal ne postoji i ne može da prenosi podatke.

Primer:

var ch chan int // ch je nil

func main() {
    fmt.Println(<-ch) // zauvek blokira
}

Da biste izbegli ovo, kanal treba inicijalizovati pomoću make, na primer: ch := make(chan int).