Junior
Que operações podem ser realizadas com canais em Go?
sobes.tech IA
Resposta da IA
- Envio (
<-chan) - Receção (
chan<-) - Fecho (
close) - Verificação de fecho (o segundo valor devolvido na receção)
- Uso em
select - Definição de buffer (usando
cap) - Definição do número atual de elementos (usando
len)
Exemplo:
// Criar um canal com buffer
ch := make(chan int, 5)
// Enviar valor
ch <- 10
// Receber valor
val := <-ch
// Verificar se o canal está fechado ao receber
val, ok := <-ch
// Fechar o canal
close(ch)
// Uso em select
select {
case msg1 := <-ch1:
// processar mensagens de ch1
case msg2 := <-ch2:
// processar mensagens de ch2
default:
// sem mensagens disponíveis
}
// Definir o buffer
bufferSize := cap(ch)
// Número atual de elementos
currentElements := len(ch)