Middle+
Kanalı kim bağlamalıdır?
sobes.tech Süni İntellekt
AI-dan cavab
Kanalı yaradan şəxs onu bağlamalı və artıq ona məlumat göndərmək niyyətində olmamalıdır. Bu, bağlanmış kanala məlumat göndərməyə cəhd edərkən panikadan qaçınmaq və alıcıların məlumat axınının sonunu düzgün müəyyən edə bilməsi üçün vacibdir.
Əsas qaydalar:
- Göndərən, artıq dəyər göndərməyəcəyini bilsə, kanalı bağlamalıdır.
- Qəbul edənlər kanalı bağlamamalıdır.
- Kanalın bağlanması, qəbul edənlərə yeni məlumatların olmayacağını siqnal verir.
Nümunə:
func istehsalçı(ch chan<- int) {
for i := 0; i < 5; i++ {
ch <- i
}
close(ch) // Bütün məlumatlar göndərildikdən sonra kanalı bağlayırıq
}
func iste'molçu(ch <-chan int) {
for val := range ch {
fmt.Println(val)
}
// Kanal bağlandıqda, döngü sona çatır
}
func main() {
ch := make(chan int)
go istehsalçı(ch)
iste'molçu(ch)
}