Sobes.tech
Junior — Middle

Дар кадом қисми коди бояд каналро баст?

sobes.tech AI

Ҷавоб аз AI

Go-да каналды оның құрылу орны мен одан әрі деректер жіберу жоспарланбаған жерде жабу керек. Әдетте, бұл жіберуші тарапынан жасалады, ол қабылдаушыларға деректердің тоқтатылғанын сигналдау үшін.

Маңызды:

  • Қабылдаушылар оқуда каналдың жабылғанын тексере алады.
  • Тек жіберуші ғана каналды жабуы керек, әйтпесе паника болуы мүмкін.

Мысал:

ch := make(chan int)
func() {
    defer close(ch) // барлық деректер жіберілгеннен кейін каналды жабамыз
    for i := 0; i < 5; i++ {
        ch <- i
    }
}()

for val := range ch {
    fmt.Println(val) // канал жабылғанға дейін деректерді аламыз
}