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