Intern
¿Qué sucede con esta operación de envío? El canal se ampliará automáticamente y la recepción se realizará de forma asíncrona La goroutine se bloqueará hasta que aparezca un receptor El valor será descartado sin error El envío provocará un panic
sobes.tech AI
Respuesta de la IA
В Go небуферизованный канал блокирует операцию отправки до тех пор, пока другая горутина не выполнит приём значения из канала. В вашем случае, если в программе нет активного получателя, операция ch <- 1 заблокируется и горутина, выполняющая отправку, будет ждать.
Канал не расширяет буфер автоматически, значение не отбрасывается и panic не вызывается.
Пример:
ch := make(chan int) // небуферизованный канал
// Отправка в отдельной горутине
go func() {
ch <- 1 // заблокируется, пока кто-то не прочитает
}()
// Если здесь нет чтения из ch, отправка будет ждать