В Go операторы switch по большей части очень похожи на многие другие языки. Их общий синтаксис следующий:

switch condition {
case answer:
   //do something
default:
}

Так, например, мы могли бы сделать следующее:

switch time.Now().Day() {
case 0:
fmt.Println("Monday")
case 1:
fmt.Println("Tuesday")
case 2:
fmt.Println("Wednesday")
case 3:
fmt.Println("Thursday")
case 4:
fmt.Println("Friday")
case 5, 6:
fmt.Println("Weekend!!")
}

Обратите внимание, что здесь нет операторов break, go сделает это автоматически на этапе компиляции, поэтому нет необходимости их включать.

Есть еще одно ключевое слово, которое мы можем использовать в операторах switch, fallthrough , это позволит нам, например, перейти к первому случаю, и оно также продолжит оценивать следующие случаи.

Пример ниже:

answer := 15
switch {
case answer%5 == 0:
fmt.Println("It is divisible by 5")
fallthrough
case answer%3 == 0:
fmt.Println("It is divisible by 3")
default:
fmt.Println("The answer is neither divisible by 5 or 3")
}

выход:

It is divisible by 5
It is divisible by 3