Junior
Go'da kanallarla hangi işlemler yapılabilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
- Gönderme (
<-chan) - Alma (
chan<-) - Kapatma (
close) - Kapanma kontrolü (alırken döndürülen ikinci değer)
selectiçinde kullanım- Buffer boyutunun belirlenmesi (
capkullanılarak) - Mevcut öğe sayısının belirlenmesi (
lenkullanılarak)
Örnek:
// Bufferli kanal oluşturma
ch := make(chan int, 5)
// Değer gönderme
ch <- 10
// Değer alma
val := <-ch
// Alma sırasında kapanma kontrolü
val, ok := <-ch
// Kanalı kapatma
close(ch)
// select içinde kullanım
select {
case msg1 := <-ch1:
// ch1’den mesajları işleme
case msg2 := <-ch2:
// ch2’den mesajları işleme
default:
// erişilebilir mesaj yok
}
// Buffer boyutunu belirleme
bufferSize := cap(ch)
// Mevcut öğe sayısını belirleme
currentElements := len(ch)