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

Танҳо пас аз ин, шумо метавонед бехатар навишт ва хондан аз каналро анҷом диҳед.