В большинстве языков
switch требует явного break в каждом case, иначе выполнение провалится в следующий блок. Go сделал иначе.В Go каждый case автоматически завершается — никакого проваливания:
switch status {
case 1:
fmt.Println("one") // выполнится только это
case 2:
fmt.Println("two") // сюда не попадём
}В C/Java без break выполнились бы оба блока.
Есть
fallthrough, C-стайл поведение можно воспроизвести явно:switch status {
case 1:
fmt.Println("one")
fallthrough // явно говорим "провалиться" дальше
case 2:
fmt.Println("two") // выполнится тоже
}Несколько значений в одном case:
switch day {
case "Saturday", "Sunday":
fmt.Println("выходной")
case "Monday", "Friday":
fmt.Println("почти выходной")
}🐸 Библиотека Go для собеса