make ile channel
- Go kursu
- Orta seviye
- Ders 8/80
- 4 dk
make ile channel oluşturmayı öğrenirsin.
make ile channel
Channel'lar make fonksiyonuyla oluşturulur: ch := make(chan int). Bu, tamponsuz (unbuffered) bir channel yapar; gönderen ve alan eşleşene kadar bloklanır.
Channel'ın türü chan anahtar kelimesi + eleman türüyle belirtilir: chan int, chan string, chan struct{}. chan struct{} sinyal için kullanılır (veri taşımaz).
Channel türleri
Channel türleri eleman türüne göre değişir ve her biri farklı amaçlara hizmet eder:
chan int— tamsayı kanalı, sayı aktarımı içinchan string— metin kanalı, mesaj aktarımı içinchan struct{}— sinyal kanalı (verisiz), sadece bildirimchan<- int— yalnız gönderme, fonksiyon parametresinde kısıt
Tek yönlü channel'lar fonksiyon parametresinde kısıt için kullanılır; bu, yanlışlıkla alma veya gönderme yapılmasını önler.
Uygulama Channel oluştur ve yazdır
main içine bir make(chan string) çağrısı ve fmt.Println ile channel açıldı yazdır.
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
func main() {
ch := make(chan string)
go func() { ch <- "channel açıldı" }()
fmt.Println(<-ch)
}Beklenen çıktı
channel açıldı
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 make(chan int) ne tür channel oluşturur?
- Tamponlu
- Tamponsuz Doğru cevap
- Senkron olmayan
- Tek yönlü
Açıklama: tamponsuz. Tamponlu channel için make(chan int, n) kullanılır.
2 Channel türü
ch := make(____)
ch := make(chan int)
Açıklama: chan önce, tür sonra gelir.
3 Channel türlerini eşleştir
| Kavram | Anlamı |
|---|---|
chan int |
Tamsayı |
chan string |
Metin |
chan struct{} |
Sinyal |
chan<- int |
Sadece gönderme |