В 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