Switch существует для сравнения значения с другими. Пример golang:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
package main import ( "fmt" ) func main() { fmt.Println("Здесь вход в пещеру и путь на восток.") var command = "зайти внутрь" switch command { // Сравнивает case с command case "идти на восток": fmt.Println("Вы направляетесь к горе.") case "зайти в пещеру", "зайти внутрь": // Запятая разделяет список возможных значений fmt.Println("Вы находитесь в тускло освещенной пещере.") case "прочитать знак": fmt.Println("На знаке написано 'Несовершеннолетним вход запрещен'.") default: fmt.Println("Пока не совсем понятно.") } } |
В результате программа выдаст:
1 Здесь вход в пещеру и путь на восток.
2 Вы находитесь в тускло освещенной пещере.
Оператор switch создан для организации выбора из множества различных вариантов. Такой себе переключатель, в вашем коде.
Вот еще один пример, работы golang switch
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package main import ( "fmt" ) func main() { var room = "озеро" switch { // Выражения для каждого случая case room == "пещера": fmt.Println("Вы находитесь в тускло освещенной пещере.") case room == "озеро": fmt.Println("Лед кажется достаточно крепким.") fallthrough // Переходит на следующий случай case room == "глубина": fmt.Println("Вода такая холодная, что сводит кости.") } } |
Если нет условия, то он будет как switch true
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package main import ( "fmt" "time" ) func main() { t := time.Now() switch { case t.Hour() < 12: fmt.Println("Good morning!") case t.Hour() < 17: fmt.Println("Good afternoon.") default: fmt.Println("Good evening.") } } |