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).