Junior — Middle
Hataları önlemek için Go'da kanalı kaç kez kapatmak gerekir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, bir kanalı tam olarak bir kez kapatmak gerekir, artık ona veri göndermeyi planlamıyorsanız. Kanalı birkaç kez kapatmak, bir panik (runtime panic) ile sonuçlanır.
Önemli:
- Kanalı yazan kişi kapatmalı, okuyan değil.
- Kanal, goroutine'ler arasında veri iletimi için kullanılıyorsa, kapatma, artık veri olmayacağını gösterir.
Örnek:
ch := make(chan int)
func() {
defer close(ch) // kanalı bir kez kapatıyoruz
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val)
}
Bu örnekte, kanal tüm değerler gönderildikten sonra bir kez kapatılır.