Junior — Middle
Какво ще се случи в програма, ако се опитате да прочетете от затворен канал в Go?
sobes.tech AI
Отговор от AI
Ако се опитате да прочетете от затворен канал в Go, операцията за четене ще върне нулева стойност на типа на канала и false във втория върнат резултат, ако се използва синтаксисът с две стойности за връщане:
v, ok := <-ch
Тук ok ще бъде false, което означава, че каналът е затворен и повече данни няма да постъпват.
Ако четете от затворен канал без да проверявате ok, ще получите нулева стойност на типа на канала (например, 0 за int).
Важно: четенето от затворен канал не блокира и не предизвиква паника, а връща веднага нулева стойност и false.