Middle+
Дар кадом шароитҳо хондани канал ба мӯътадил монеъ мешавад? Чӣ мешавад вақте ки ба канал nil нависед? Вақте ки ба канал баста нависед?
sobes.tech AI
Ҷавоб аз AI
-
Каналдан ўқиш канал бўш бўлса ва унда ёзиш ният қилинмаса, у доимий равишда тўхтатиб қўйилади (масалан, барча юборувчилар ёпилган ёки йўқ).
-
Nil-каналга ёзиш (nil билан тенг канал) доимий равишда тўхтатиб қўйилади, чунки nil-канал инициализация қилинмаган ва маълумот қабул қила олмайди.
-
Ёзиш ёпилган каналга, Goда, паника (panic) келтиради, чунки бу тақиқланган ва ишга тушириш вақти хатоси ҳисобланади.
Масалан:
var ch chan int // nil-канал
// <-ch // nil-каналдан ўқиш доимий равишда тўхтатиб қўйилади
// ch <- 1 // nil-каналга ёзиш доимий равишда тўхтатиб қўйилади
ch = make(chan int)
close(ch)
// ch <- 2 // panic: ёпилган каналага юбориш