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.