CodeBlanks Logo Icon CodeBlanks

Veri gönderme

<- operatörüyle channel'a veri göndermeyi öğrenirsin.

Veri gönderme

Channel'a veri göndermek için <- operatörü kullanılır: ch <- 42. Bu, 42 değerini ch channel'ına gönderir. Tamponsuz channel'da alıcı hazır olana kadar bloklanır.

Gönderme ifadesi ch <- değer biçimindedir. Kanal solda, değer sağda, ok içeri doğrudur. Bloklanma, channel'ın senkronize çalışmasını sağlar.

Gönderme ve bloklanma

Tamponsuz channel'da gönderen, alıcı hazır olana kadar bloklanır. Bu, goroutine'ler arası el sıkışma (rendezvous) sağlar. Alıcı gelene kadar gönderen bekler.

Bu davranış senkronizasyon için kullanışlıdır: ch <- 1 yazan goroutine, başka bir goroutine <-ch yapana kadar ilerlemez. Böylece iki goroutine bir noktada buluşur.

Uygulama Channel'a gönder

main içine bir ch <- "gönderildi" ifadesi ve fmt.Println ile gönderildi 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 <- "gönderildi" }()
    fmt.Println(<-ch)
}

Beklenen çıktı

gönderildi

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 ch <- 42 ifadesi ne yapar?

  • 42'yi ch'ten alır
  • 42'yi siler
  • 42'yi karşılaştırır
  • 42'yi ch'e gönderir Doğru cevap

Açıklama: Ok içeri doğru göndermeyi belirtir.

2 Gönderme ifadesi

Soru
ch ____ 42
Cevap
ch <- 42

Açıklama: > ters yön, <= karşılaştırmadır.

3 Gönderme kavramlarını eşleştir

Kavram Anlamı
ch <- v Gönderme
<- Operatör
bloklanma Bekleme
alıcı Tüketici

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