Трудно ответить на вопрос «Что делает язык программирования лучше?» Большинство людей сразу обращаются к главной особенности параллелизма, но для меня это мелочи, которые делаются правильно. Умные настройки по умолчанию, не так много особых случаев.

Пару недель назад я дал другу этот пример кода:

switch true {
    case blahblahblah:
        ...
    case foofoofoo:
        ...
    default:
        ...
}

Дело в том, что я только что понял, что можно (повторно) использовать оператор switch в качестве замены общей конструкции if ... else if ... else if ... else ....

Мы оба вроде как пришли к выводу, что это было некрасиво и, вероятно, лучше просто сделать if ... else .... Кажется, что использование true (константа) в качестве «переменной» в переключателе немного неуместно.

А вчера я узнал, что go официально поддерживает переключатели без значения для включения. В таких случаях значение неявно равно true. Дох.

Итак, мой пример становится

switch {
    case blahblahblah:
        ...
    case foofoofoo:
        ...
    default:
        ...
}

Для меня это пример того, как дизайнеры го делают небольшие вещи, чтобы улучшить язык, не создавая при этом большого шума.

Итак, если вы предпочитаете switch if ... else для больших блоков с несколькими ветвями, switch - это официально разрешенный способ сделать это.