Junior — Middle
Kas nutiks, jei įvykdysite rašymo operaciją tuščiam (nil) kanalui Go kalboje?
sobes.tech AI
Atsakymas iš AI
Jei bandysite įrašyti reikšmę į nil kanalą Go, programa amžinai užstringa (deadlock). Tai vyksta todėl, kad nil kanalas nėra inicializuotas ir negali priimti ar siųsti reikšmių.
Pavyzdys:
var ch chan int // ch == nil
func main() {
ch <- 1 // čia programa užstringa
}
Norint to išvengti, kanalą reikia inicializuoti naudojant make, pavyzdžiui:
ch := make(chan int)
Tik po to galima saugiai rašyti ir skaityti iš kanalo.