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