Получение нуля из интового канала при его закрытии означает, что канал пуст. В этом случае второе возвращаемое значение из операции <-ch будет false.
go
Необходимо проверять второе возвращаемое значение (ok) при чтении из канала, чтобы определить, было ли значение получено до закрытия канала или это "нулевое" значение после закрытия.
go