Junior — Middle
Ako sa realizuje výmena správ medzi odosielateľom a príjemcom údajov v jazyku Go?
sobes.tech AI
Odpoveď od AI
V jazyku Go sa výmena správ medzi odosielateľom a príjemcom údajov realizuje pomocou kanálov (channels). Kanály umožňujú goroutinám bezpečne si vymieňať údaje, synchronizujúc ich vykonávanie.
Kanál sa vytvára pomocou funkcie make a môže byť s bufferom alebo bez:
ch := make(chan int) // kanál bez bufferu
chBuf := make(chan int, 5) // kanál s bufferom veľkosti 5
Odoslanie do kanála:
ch <- 42 // odošlite hodnotu 42 do kanála ch
Príjem z kanála:
value := <-ch // získajte hodnotu z kanála ch
Príklad výmeny správ medzi dvoma goroutinami:
package main
import (
"fmt"
"time"
)
func main() {
ch := make(chan string)
go func() {
ch <- "Ahoj od gorutiny"
}()
msg := <-ch
fmt.Println(msg)
}
Týmto spôsobom kanály v Go zabezpečujú bezpečnú a pohodlnú komunikáciu medzi paralelnými tokmi vykonávania.