Назад к вопросам
Касперский
Junior — Middle
86
Как убедиться, что канал в системе уже закрыт?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Go определить, закрыт ли канал, можно при попытке чтения из него. При чтении из закрытого канала операция не блокируется и возвращает нулевое значение и флаг, указывающий, что канал закрыт.
Пример:
ch := make(chan int)
close(ch)
v, ok := <-ch
if !ok {
fmt.Println("Канал закрыт")
} else {
fmt.Println("Получено значение", v)
}
Здесь ok будет false, если канал закрыт. Это стандартный способ проверить состояние канала в Go.