Мне нужен способ выполнить обработку в части оператора select по умолчанию, но затем отключить значение по умолчанию позже.
Я использовал оператор if, как в приведенном ниже коде, но после того, как завершение становится истинным, мы просто иметь занятый l oop, который (когда каналы пусты) просто продолжал бы вращать, проверяя завершенный флаг, который всегда будет истинным. Это не кажется правильным способом Go.
for {
select {
case p := <-subscriber.Next:
...
case err := <subsriber.OnError:
...
default:
if !finished {
subscriber.Subscribe(name, params)
...
if ... { finished = true }
}
}
}
Я знаю, что вы не можете отключить часть по умолчанию, но должен быть лучший способ сделать это.