Sobes.tech
Junior — Middle

Агар шумо кӯшиш кунед, ки каналро, ки аллакай баста шудааст, бубаст, чӣ мешавад?

sobes.tech AI

Ҷавоб аз AI

Дар забони Go кӯшиши бастани канале, ки аллакай баста шудааст, дар вақти иҷрои барнома ба panic (паника) оварда мерасонад. Ин ба он вобаста аст, ки функсияи close() барои бастани канал танҳо як маротиба пешбинӣ шудааст, ва бастани такрорӣ хато ҳисобида мешавад.

Масалан:

ch := make(chan int)
close(ch)      // бастани дуруст
close(ch)      // боиси panic: close of closed channel

Барои пешгирӣ аз panic, бояд таъмин кард, ки канал танҳо як маротиба баста шавад, масалан, бо истифода аз логикаи иловагӣ ё ҳамоҳангсозӣ.