Sobes.tech
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)
  • select içinde kullanım
  • Buffer boyutunun belirlenmesi (cap kullanılarak)
  • Mevcut öğe sayısının belirlenmesi (len kullanı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)