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