Если нет другой ветви выбора, используйте следующее:
for v := range ch {
// do some stuff
}
Код проще и понятнее, чем for / select, представленный в вопросе.
Если выпо какой-то причине необходимо выполнить прием внутри цикла, а затем использовать следующий код:
for {
// do some stuff
v, ok := <-ch
if !ok {
break
}
// do some other stuff
}
Как правило, следует избегать операторов выбора одной ветви.Выбор с одной ветвью функционально такой же, как и одна ветвь.