Junior — Middle
Kanalın kapatılması gereken kodun yeri neresidir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go'da kanal, oluşturulduğu yerde ve artık veri göndermeyi planlamadığınız yerde kapatılmalıdır. Genellikle, bu gönderen tarafından yapılır ve alıcıları, artık veri olmayacağını bildirmek içindir.
Önemli:
- Alıcılar, okuma sırasında kanalın kapanıp kapanmadığını kontrol edebilir.
- Kanal yalnızca gönderen tarafından kapatılmalıdır, aksi takdirde panik oluşabilir.
Örnek:
ch := make(chan int)
func() {
defer close(ch) // tüm veriler gönderildikten sonra kanalı kapat
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // kanal kapanana kadar verileri alır
}