Каким образом можно завершить работу с каналом в программе?

В Go для завершения работы с каналом используется функция close().

Короткий ответ

Что ответить на собеседовании

В Go для завершения работы с каналом используется функция close(). Закрытие канала сигнализирует получателям, что больше не будет отправлено новых значений. После закрытия канала попытка отправить в него вызовет панику, но чтение из закрытого канала возможно — оно вернет нулевое значение и false во втором возвращаемом параметре.

Подробный разбор

Ответ с пояснениями

В Go для завершения работы с каналом используется функция close(). Закрытие канала сигнализирует получателям, что больше не будет отправлено новых значений. После закрытия канала попытка отправить в него вызовет панику, но чтение из закрытого канала возможно — оно вернет нулевое значение и false во втором возвращаемом параметре.

Пример:

ch := make(chan int)
go func() {
    ch <- 42
    close(ch) // Закрываем канал после отправки
}()

for val := range ch {
    fmt.Println(val) // Выведет 42
}

Таким образом, чтобы завершить работу с каналом, нужно вызвать close(channel).

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку