CodeBlanks Logo Icon CodeBlanks

make ile channel

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çin
  • chan string — metin kanalı, mesaj aktarımı için
  • chan struct{} — sinyal kanalı (verisiz), sadece bildirim
  • chan<- 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

main.go
package main

import "fmt"

func main() {
    // buraya yaz
}

Örnek çözüm

main.go
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ü

Soru
ch := make(____)
Cevap
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

Orta seviye bölümündeki tüm dersler