Гарантирует ли порядок выполнения конструкция select-case?
В Go, порядок выполнения операторов в конструкции select-case не гарантируется.
Когда у вас есть несколько операторов case в конструкции select, и они все готовы для выполнения (то есть каналы готовы для чтения/записи), Go выбирает один из них случайным образом.
Это означает, что вы не можете предсказать или контролировать, какой оператор case будет выполнен первым, если у вас есть несколько готовых для выполнения операторов case. Это помогает предотвратить блокировку и гарантировать, что все горутины имеют равные шансы на выполнение.
Источники:
Как выглядит конструкция утверждения типа switch?
1 | switch v := i.(type) { |
Нужно ли в switch-case проставлять break?
В языке программирования Go, вам не нужно использовать break в конструкции switch-case. В отличие от некоторых других языков программирования, таких как C++ или Java, каждый case в Go автоматически прерывается, и выполнение программы продолжается после конструкции switch-case. Это означает, что после каждого case не нужно явно указывать break.
Однако, если вы хотите, чтобы выполнение продолжилось и в следующем case, вы можете использовать ключевое слово fallthrough.
Надеюсь, это помогло вам лучше понять, как работает конструкция switch-case в Go! Если у вас есть еще вопросы, не стесняйтесь задавать.