Middle+
Каналды ким бояд бандад - нависанда ё хонанда?
sobes.tech AI
Ҷавоб аз AI
Go-да, арнаны (sender) тарапынан жабу керек, ал алушы (receiver) тарапынан емес. Арнаны жабу оның одан әрі мәндер жіберілмейтінін көрсетеді, және оқырмандар жабық арнаны анықтап, дұрыс оқуды аяқтай алады.
Егер оқырман арнаны жабса, ал жіберуші жіберуді жалғастырса, бұл паникаға (panic) әкеледі. Сондықтан, арнаны жабу жауапкершілігі оны жазатын тарапқа тиесілі.
Мысал:
ch := make(chan int)
func() {
defer close(ch) // жіберуші арнаны жабады
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // жабылғанға дейін оқиды
}