Урок объясняет работу оператора switch в Go: базовый синтаксис, сравнение значений, проверку нескольких вариантов, выражения в case и использование fallthrough.
Оператор switch позволяет удобно проверять выражение на соответствие
разным вариантам. Это более чистая и читаемая альтернатива цепочкам
if..else if.
switch value {
case option1:
// действие
case option2:
// действие
default:
// код по умолчанию
}
Switch выполняется сверху вниз и выбирает первый подходящий case.
x := 3
switch x {
case 1:
fmt.Println("1")
case 2:
fmt.Println("2")
case 3:
fmt.Println("3")
default:
fmt.Println("other:", x)
}
Switch может работать с любыми типами: строками, числами, результатами выражений.
url := "example.com"
switch url {
case "example.com":
fmt.Println("test")
case "google.com":
fmt.Println("live")
default:
fmt.Println("dev")
}
В case можно использовать выражения, сравнения и функции:
switch result := calculate(5); {
case result > 10:
fmt.Println(">10")
case result == 6:
fmt.Println("==6")
case result < 10:
fmt.Println("<10")
}
Здесь switch работает как набор if-условий.
switch letter {
case 'a', 'e', 'i', 'o', 'u':
fmt.Println("lowercase vowel")
case 'A', 'E', 'I', 'O', 'U':
fmt.Println("uppercase vowel")
default:
fmt.Println("not a vowel")
}
По умолчанию switch останавливается после первого совпадения.
Ключевое слово fallthrough заставляет выполнить следующий case:
switch letter {
case 'a', 'e', 'i', 'o', 'u':
fmt.Println("a vowel")
fallthrough
case 'A', 'E', 'I', 'O', 'U':
fmt.Println("vowels are great")
default:
fmt.Println("something else")
}
Используй осторожно - fallthrough может усложнять логику.
switch - удобная альтернатива множеству if..else if.case может содержать несколько значений.fallthrough позволяет выполнить следующий блок.switch делает код лаконичным, читаемым и логичным.