Junior — Middle
Kanalın bağlanması lazım olan kodun yeri harada?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da kanal yaradıldıqdan sonra və artıq məlumat göndərilməyəcəyi yerdə bağlanmalıdır. Adətən, bu, göndərən tərəfindən edilir və qəbul edənlərə məlumatların artıq olmayacağını siqnal verir.
Vacib:
- Qəbul edənlər oxuma zamanı kanalın bağlanıb-bağlanmadığını yoxlaya bilərlər.
- Kanal yalnız göndərən tərəfindən bağlanmalıdır ki, panikaya səbəb olmasın.
Nümunə:
ch := make(chan int)
func() {
defer close(ch) // bütün məlumatlar göndərildikdən sonra kanalı bağlayırıq
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // kanal bağlanana qədər məlumat alırıq
}