Как динамически добавлять каналы в select?

Middle+
113 просмотров
AFK Offer AI

Обычный select не поддерживает динамическое число case'ов — они фиксированы при компиляции. Для динамического select есть reflect.Select, который принимает slice of SelectCase. Каждый case описывает направление (Send/Recv/Default) и канал. Это медленнее обычного select из-за reflect, но единственный способ работать с переменным числом каналов. Альтернатива — fan-in через горутины.

Следующий вопрос

Что такое projection?