Sobes.tech
Junior — Middle

Como implementar a criação e transmissão de dados através de um canal no seu sistema?

sobes.tech IA

Resposta da IA

Em Go, para criar e transmitir dados através de um canal, utiliza-se o tipo incorporado chan. Os canais permitem trocar dados de forma segura entre goroutines.

Exemplo de criação e uso de um canal:

package main

import (
    "fmt"
)

func main() {
    // Criar um canal para transmitir inteiros
    ch := make(chan int)

    // Iniciar uma goroutine que envia dados para o canal
    go func() {
        ch <- 42 // enviar o número 42
        close(ch) // fechar o canal após o envio
    }()

    // Receber dados do canal
    for val := range ch {
        fmt.Println("Valor recebido:", val)
    }
}

Aqui:

  • make(chan int) cria um canal para transmitir int.
  • O operador <- é usado para enviar (ch <- 42) e receber (val := <-ch) dados.
  • Fechar o canal (close(ch)) indica que não haverá mais dados.
  • O ciclo for range lê do canal até que ele seja fechado.

Dessa forma, os canais garantem sincronização e transmissão de dados entre threads de execução paralelos.