Junior — Middle
Kāds uzvedības gaidāms, ja mēģināsiet aizvērt kanālu, kas jau iepriekš bija slēgts?
sobes.tech AI
Atbilde no AI
Go valodā, mēģinājums aizvērt jau aizvērtu kanālu noved pie panikas.
Kanālu drīkst aizvērt tikai vienu reizi, lai signalizētu, ka vairs netiks sūtītas vērtības.
Ja atkārtoti izsauksiet close(ch) tam pašam kanālam, programma strauji pārtrauks ar kļūdu.
Piemērs:
ch := make(chan int)
close(ch) // pareizi
close(ch) // panic: close of closed channel
Tāpēc ir svarīgi kontrolēt, ka kanāls tiek aizvērts tikai vienu reizi.