Go Інструкція switch
Інструкція switch
Використовуйте інструкцію switch
, щоб вибрати один із багатьох блоків коду для виконання.
Інструкція switch
у Go подібна до інструкцій в мовах C, C++, Java, JavaScript та PHP. Різниця полягає в тому, що вона виконує лише відповідний кейс, тому їй не потрібна інструкція break
.
Синтаксис однокейсного switch
Синтаксис
switch вираз {
кейс x:
// блок коду
кейс y:
// блок коду
кейс z:
...
default:
// блок коду
}
Ось як це працює:
- Вираз обчислюється один раз
- Значення виразу
switch
порівнюється зі значеннями кожногоcase
- Якщо є збіг, виконується відповідний блок коду
- Ключове слово
default
є необов’язковим. Воно визначає якийсь код для запуску, якщо немає відповідностіcase
Приклад однокейсного switch
У прикладі нижче для обчислення назви дня тижня використовується номер дня тижня:
Приклад
package main
import ("fmt")
func main() {
day := 4
switch day {
case 1:
fmt.Println("Понеділок")
case 2:
fmt.Println("Вівторок")
case 3:
fmt.Println("Середа")
case 4:
fmt.Println("Четвер")
case 5:
fmt.Println("П’ятниця")
case 6:
fmt.Println("Субота")
case 7:
fmt.Println("Неділя")
}
}
Результат:
Четвер
Ключове слово default
Ключове слово default
визначає певний код для запуску, якщо немає відповідності кейса:
Приклад
package main
import ("fmt")
func main() {
day := 8
switch day {
case 1:
fmt.Println("Понеділок")
case 2:
fmt.Println("Вівторок")
case 3:
fmt.Println("Середа")
case 4:
fmt.Println("Четвер")
case 5:
fmt.Println("П’ятниця")
case 6:
fmt.Println("Субота")
case 7:
fmt.Println("Неділя")
default:
fmt.Println("Не будній день")
}
}
Результат:
Не будній день
Усі значення case
повинні мати той самий тип, що й вираз switch
. Інакше компілятор викличе помилку:
Приклад
package main
import ("fmt")
func main() {
a := 3
switch a {
case 1:
fmt.Println("a є один")
case "b":
fmt.Println("a є b")
}
}
Результат:
./prog.go:11:2: не можна використовувати "b" (введіть нетиповий рядок) як тип int