Sobes.tech
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.