Junior
¿Qué operaciones se pueden realizar con canales en Go?
sobes.tech AI
Respuesta de la IA
- Envío (
<-chan) - Recepción (
chan<-) - Cierre (
close) - Comprobación de cierre (el segundo valor devuelto al recibir)
- Uso en
select - Definición de la capacidad (usando
cap) - Definición del número actual de elementos (usando
len)
Ejemplo:
// Crear un canal con búfer
ch := make(chan int, 5)
// Enviar un valor
ch <- 10
// Recibir un valor
val := <-ch
// Comprobar si está cerrado al recibir
val, ok := <-ch
// Cerrar el canal
close(ch)
// Uso en select
select {
case msg1 := <-ch1:
// procesar mensajes de ch1
case msg2 := <-ch2:
// procesar mensajes de ch2
default:
// no hay mensajes disponibles
}
// Definición de la capacidad
bufferSize := cap(ch)
// Número actual de elementos
currentElements := len(ch)