Junior — Middle
Чӣ мешавад, агар амалиёти навиштро дар канали холӣ (nil) дар забони Go иҷро кунед?
sobes.tech AI
Ҷавоб аз AI
Агар кӯшиш кунед, ки арзишро ба канал nil дар Go нависед, барнома ҳамеша бозмедорад (deadlock). Ин ба он сабаб аст, ки канал nil оғоз нашудааст ва наметавонад арзишҳоро қабул ё фиристад.
Масалан:
var ch chan int // ch == nil
func main() {
ch <- 1 // дар ин ҷо барнома бозмедорад
}
Барои пешгирӣ аз ин, канал бояд бо make оғоз карда шавад, масалан:
ch := make(chan int)
Танҳо пас аз ин, шумо метавонед бехатар навишт ва хондан аз каналро анҷом диҳед.