Sobes.tech
Senior

Ποιο θα είναι το αποτέλεσμα της εγγραφής σε ένα κλειστό κανάλι; (deadlock / panic / η λειτουργία θα επιστρέψει σφάλμα)

sobes.tech AI

Απάντηση από AI

Запись в закрытый (закрытый для записи) канал в Go приводит к панике (panic).

Если канал закрыт, попытка отправить в него значение вызывает runtime panic с сообщением "send on closed channel".

Пример:

ch := make(chan int)
close(ch)
ch <- 1 // panic: send on closed channel

Таким образом, операция не возвращает ошибку и не блокируется — происходит немедленная паника. Чтобы избежать этого, перед отправкой обычно проверяют, закрыт ли канал, или используют recover для обработки паники.