Junior — Middle
Ako implementovať tvorbu a prenos dát cez kanál vo vašom systéme?
sobes.tech AI
Odpoveď od AI
V jazyku Go sa na vytváranie a prenos dát cez kanál používa sa vstavaný typ chan. Kanály umožňujú bezpečnú výmenu dát medzi gorutinami.
Príklad vytvorenia a použitia kanála:
package main
import (
"fmt"
)
func main() {
// Vytvorenie kanála na prenos celých čísel
ch := make(chan int)
// Spustenie gorutiny, ktorá posiela dáta do kanála
go func() {
ch <- 42 // odoslanie čísla 42
close(ch) // zatvorenie kanála po odoslaní
}()
// Príjem dát z kanála
for val := range ch {
fmt.Println("Prijatá hodnota:", val)
}
}
Tu:
make(chan int)vytvára kanál na prenosint.- Operátor
<-sa používa na odoslanie (ch <- 42) a prijatie (val := <-ch) dát. - Zatvorenie kanála (
close(ch)) signalizuje, že viac dát nebude. - Cyklus
for rangečíta z kanála, kým nie je zatvorený.
Týmto spôsobom kanály zabezpečujú synchronizáciu a prenos dát medzi paralelne bežiacimi vláknami.