Junior — Middle
¿Cómo se realiza el intercambio de mensajes entre el remitente y el destinatario de datos en el lenguaje Go?
sobes.tech AI
Respuesta de la IA
En el lenguaje Go, el intercambio de mensajes entre el remitente y el receptor de datos se realiza mediante canales (channels). Los canales permiten que las goroutines intercambien datos de manera segura, sincronizando su ejecución.
Un canal se crea con la función make y puede ser con búfer o sin búfer:
ch := make(chan int) // canal sin búfer
chBuf := make(chan int, 5) // canal con búfer de tamaño 5
Enviar a un canal:
ch <- 42 // enviar el valor 42 al canal ch
Recibir de un canal:
value := <-ch // obtener el valor del canal ch
Ejemplo de intercambio de mensajes entre dos goroutines:
package main
import (
"fmt"
"time"
)
func main() {
ch := make(chan string)
go func() {
ch <- "Hola desde la goroutine"
}()
msg := <-ch
fmt.Println(msg)
}
De esta manera, los canales en Go proporcionan una comunicación segura y conveniente entre hilos de ejecución paralelos.