Özet - Channel'lar
- Go kursu
- Orta seviye
- Ders 12/80
- 4 dk
Channel kavramlarını birleştirerek işçi yazarsın.
Özet - Channel'lar
Bu bölümde channel'ları öğrendin:
- make(chan T) ile channel oluşturma ve tipli iletişim
- ch <- v ile güvenli veri gönderme ve bloklanma
- <-ch ile veri alma ve durum kontrolü
- Buffered channel ile tampon ve asenkron başlangıç
Şimdi bu kavramları birleştirerek bir worker yazacaksın: channel oluştur, goroutine başlat, veri al ve yazdır.
Uygulama Worker channel
main içine bir make(chan string) çağrısı ve fmt.Println ile worker tamam 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 <- "worker tamam" }()
fmt.Println(<-ch)
}Beklenen çıktı
worker tamam
Uygulama Worker çıktısı
main içine fmt.Println ile channel worker yazdır.
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
func main() {
fmt.Println("channel worker")
}Beklenen çıktı
channel worker
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Channel kullanımı
ch := make(chan string)
go func() {
ch <- ____
}()
msg := <-ch
ch := make(chan string)
go func() {
ch <- "ok"
}()
msg := <-ch
Açıklama: <-ch almadır, gönderme değil.
2 Bölüm kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
make(chan int) |
Oluşturma |
ch <- v |
Gönderme |
<-ch |
Alma |
make(chan int, n) |
Tamponlu |