Sobes.tech
Junior — Middle

Какво ще се случи в програма, ако се опитате да прочетете от затворен канал в Go?

sobes.tech AI

Отговор от AI

Ако се опитате да прочетете от затворен канал в Go, операцията за четене ще върне нулева стойност на типа на канала и false във втория върнат резултат, ако се използва синтаксисът с две стойности за връщане:

v, ok := <-ch

Тук ok ще бъде false, което означава, че каналът е затворен и повече данни няма да постъпват.

Ако четете от затворен канал без да проверявате ok, ще получите нулева стойност на типа на канала (например, 0 за int).

Важно: четенето от затворен канал не блокира и не предизвиква паника, а връща веднага нулева стойност и false.