Оператор Switch в Go

В Golang, как и в большинстве других языков программирования, есть оператор switch . Оператор switch в Golang  позволяет вычислять переменную или выражение в нескольких случаях и часто используется, когда написание нескольких операторов if-else делает код некрасивым и повторяющимся.

Оператор Switch в Go

В Go оператор switch представляет собой многонаправленный оператор ветвления, который эффективно направляет выполнение на основе значения (или типа) выражения. В Go существует два основных типа операторов switch :

  • Переключатель выражений
  • Тип переключателя

Например:

package main
import "fmt"

func main() {
    day := 4
    switch day {
    case 1:
        fmt.Println("Monday")
    case 2:
        fmt.Println("Tuesday")
    case 3:
        fmt.Println("Wednesday")
    case 4:
        fmt.Println("Thursday")
    case 5:
        fmt.Println("Friday")
    default:
        fmt.Println("Invalid day")
    }
}

Синтаксис оператора switch в Golang

switch optstatement; optexpression {
case expression1:
    // Khối code
case expression2:                                                          # Expression Switch
    // Khối code
default:
    // Khối code
}

switch var := interfaceValue.(type) {
case type1:
    // Khối code
case type2:                                                                    # Type Switch
    // Khối code
default:
    // Khối code
}

Переключатель выражений

Expression Switch оценивает выражение и переключается на случай на основе значения этого выражения. Если выражение не у��азано, по умолчанию используется значение true .

Синтаксис

switch optstatement; optexpression {
case expression1:
    // Khối code
case expression2:
    // Khối code
default:
    // Khối code
}

optstatement: Необязательный оператор (например, объявление переменной).
optexpression: Необязательное выражение (если не указано, по умолчанию принимается значение true ).

Пример с необязательной командой

Здесь вводится необязательный оператор, объявляющий переменную дня . Затем оператор switch оценивает день в соответствии с различными случаями.

package main
import "fmt"
func main() {
    switch day := 4; day {
    case 1:
        fmt.Println("Monday")
    case 2:
        fmt.Println("Tuesday")
    case 3:
        fmt.Println("Wednesday")
    case 4:
        fmt.Println("Thursday")
    case 5:
        fmt.Println("Friday")
    default:
        fmt.Println("Invalid day")
    }
}

Результат:

Thursday

Пример с необязательным выражением

Если выражение не указано, оператор switch в Golang будет считать, что выражение истинно. Это позволяет нам использовать булевы условия в операторах case.

package main
import "fmt"

func main() {
    day := 4

    switch {
    case day == 1:
        fmt.Println("Monday")
    case day == 4:
        fmt.Println("Thursday")
    case day > 5:
        fmt.Println("Weekend")
    default:
        fmt.Println("Invalid day")
    }
}

Результат

Thursday

Тип переключателя

Type Switch используется для перехода по типу значения интерфейса, а не по его значению. Это особенно полезно при работе с переменными неизвестного типа.

Синтаксис

switch var := interfaceValue.(type) {
case type1:
    // Khối code
case type2:
    // Khối code
default:
    // Khối code
}

Например:

В этом примере используется та же переменная day , но заключенная в interface{} для иллюстрации приведения типов.

package main
import "fmt"
func main() {
    var day interface{} = 4
    switch v := day.(type) {
    case int:
        switch v {
        case 1:
            fmt.Println("Monday")
        case 2:
            fmt.Println("Tuesday")
        case 3:
            fmt.Println("Wednesday")
        case 4:
            fmt.Println("Thursday")
        case 5:
            fmt.Println("Friday")
        default:
            fmt.Println("Invalid day")
        }
    default:
        fmt.Printf("Unknown type: %T\n", v)
    }
}

Результат:

Thursday

Оставить комментарий

Втянет ли Европа в гипотетическую ядерную войну между США, Израилем и Ираном? Объяснение правил НАТО.

Втянет ли Европа в гипотетическую ядерную войну между США, Израилем и Ираном? Объяснение правил НАТО.

Руководство по статьям 4 и 5 НАТО, правилам самообороны ООН и объяснение того, почему консультации не означают автоматического вступления Европы в войну.

Может ли Иран уже обладать ядерным оружием? Как интерпретировать доказательства.

Может ли Иран уже обладать ядерным оружием? Как интерпретировать доказательства.

Оцените утверждения об Иране в шесть этапов, различая обогащение урана, разработку оружия и подтвержденное обладание им.

Ядерные структуры США и Израиля: что на самом деле объясняют общедоступные источники.

Ядерные структуры США и Израиля: что на самом деле объясняют общедоступные источники.

Понимание полномочий по принятию решений в ядерной сфере в шесть этапов, включая контроль со стороны гражданского населения США и ограничения общедоступной информации об Израиле.

Ормузский пролив в 2026 году: что говорят официальные источники о перебоях в судоходстве.

Ормузский пролив в 2026 году: что говорят официальные источники о перебоях в судоходстве.

Справочник по официальным данным о сбоях в судоходстве в Ормузском проливе в 2026 году, заявлениям, связанным с Ираном, подтвержденным инцидентам и тому, что остается неясным.

Может ли гипотетический ядерный удар США и Израиля по Ирану привести к Третьей мировой войне?

Может ли гипотетический ядерный удар США и Израиля по Ирану привести к Третьей мировой войне?

Основанное на источниках руководство по рискам ядерной эскалации, правилам Устава ООН и статье 5 НАТО в строго гипотетическом сценарии с Ираном.

Как подготовиться к гипотетическому отключению электроэнергии, вызванному электромагнитным импульсом: 5 шагов для гражданских лиц.

Как подготовиться к гипотетическому отключению электроэнергии, вызванному электромагнитным импульсом: 5 шагов для гражданских лиц.

Для подготовки к отключению электроэнергии используйте пять шагов; сценарии, связанные с ядерным взрывом и электромагнитным импульсом, являются гипотетическими, и в первую очередь необходимо следовать официальным инструкциям по размещению в убежищах.

Как оценить киберугрозы, не предполагая Третью мировую войну: пошаговое руководство из 5 шагов.

Как оценить киберугрозы, не предполагая Третью мировую войну: пошаговое руководство из 5 шагов.

Используйте 5 защитных шагов для подтверждения кибернарушения, защиты учетных записей домохозяйств и предотвращения ошибочного принятия отключения электроэнергии за войну.

Ядерная зима: как оценить глобальные климатические последствия гипотетического удара по Ирану.

Используйте эти 5 шагов, чтобы оценить климатические последствия гипотетического удара Ирана, сравнить допущения моделей и избежать необоснованных прогнозов.

Сколько времени может потребоваться Земле для восстановления после гипотетической ядерной войны?

Сколько времени может потребоваться Земле для восстановления после гипотетической ядерной войны?

Ознакомьтесь с шестью шагами по чтению научных работ по вопросам климата, продовольствия и восстановления экосистем после гипотетического ядерного конфликта.

Контрольный список мер по подготовке к ядерным осадкам: необходимые припасы и шаги по обустройству убежища.

Контрольный список мер по подготовке к ядерным осадкам: необходимые припасы и шаги по обустройству убежища.

Соберите практичный комплект для подготовки к радиоактивным осадкам за шесть шагов, включающий герметично упакованные продукты питания и воду, радиоприемник, медикаменты и инструкции по обустройству укрытия.