Golang Crie canal
Antes que possamos usar um canal em Go, devemos criar um. Para criar um canal no GO, podemos usar a função Make para criar um novo canal.
A sintaxe é como mostrado:
Make (Chan Val-Type)Lembre -se de que um canal é sensível ao tipo de dados. Isso significa que não podemos enviar um valor int através de um canal de string.
O exemplo a seguir cria um canal que só pode suportar tipos de string:
CH: = Make (string chan)Depois de declararmos um canal, podemos enviar e receber valores.
Enviando e recebendo valores
Podemos enviar e receber valores usando o canal <- operator. An example code is as shown below:
Pacote principalNo exemplo anterior, criamos uma goroutina básica para enviar os dados para o canal "ch". Em seguida, recebemos os dados do canal e os imprimimos.
Enviando estrutura via canal
Também podemos enviar dados de estrutura através de um canal, desde que criemos o canal com o tipo correto.
Considere o seguinte exemplo de código:
Pacote principalSe executarmos o código anterior, ele deve imprimir o primeiro nome recebido pela estrutura enviada pelo canal.
Canais unidirecionais
Como mencionado, os canais GO são bidirecionais por padrão. No entanto, podemos definir um canal para que ele possa enviar ou receber valores, mas não ambos. Isso é conhecido como um canal unidirecional.
A sintaxe é como mostrado:
CH: = Make (chan<- data_type) // send-only channelObserve a posição do operador de canal na sintaxe anterior.
O exemplo a seguir cria um canal somente de envio:
Pacote principalObserve que o canal anterior está definido apenas para enviar. No entanto, tentamos receber através do canal e o compilador retorna um erro como mostrado:
operação inválida: <-ch (receive de Tipo somente de envio Chan<- string)
Canais de fechamento
Podemos fechar um canal depois que os valores necessários forem enviados. Para isso, usamos a função próxima. É preciso o nome do canal. Em seguida, fecha o canal e retorna um valor booleano que você pode usar para verificar se o canal está fechado.
Um exemplo é mostrado abaixo:
Pacote principalO exemplo anterior fecha o canal usando o método Close (). Em seguida, usamos o valor booleano retornado da função para verificar se o canal está fechado.
Conclusão
Este guia o leva a como trabalhar com canais na linguagem de programação Go. O processo de criação de um canal, envio e recebendo valores, enviando dados de estrutura por meio de um canal, explicando os canais unidirecionais e fechando os canais foram discutidos. Esperamos que você tenha achado este artigo útil. Confira os outros artigos de dica do Linux para obter mais dicas e informações.