Sobes.tech
Junior — Middle

Come viene realizzato lo scambio di messaggi tra mittente e destinatario dei dati nel linguaggio Go?

sobes.tech AI

Risposta dell'AI

Nel linguaggio Go, lo scambio di messaggi tra mittente e destinatario di dati avviene tramite canali (channels). I canali consentono alle goroutine di scambiare dati in modo sicuro, sincronizzando la loro esecuzione.

Un canale viene creato con la funzione make e può essere con buffer o senza buffer:

ch := make(chan int)        // canale senza buffer
chBuf := make(chan int, 5)  // canale con buffer di dimensione 5

Invio nel canale:

ch <- 42  // invia il valore 42 nel canale ch

Ricezione dal canale:

value := <-ch  // ottieni il valore dal canale ch

Esempio di scambio di messaggi tra due goroutine:

package main

import (
    "fmt"
    "time"
)

func main() {
    ch := make(chan string)

    go func() {
        ch <- "Ciao dalla goroutine"
    }()

    msg := <-ch
    fmt.Println(msg)
}

In questo modo, i canali in Go garantiscono una comunicazione sicura e comoda tra flussi di esecuzione paralleli.