Переключение оператора в GO

Переключение оператора в GO

#GO

Оператор switch — это многопоточный оператор ветвления. Он обеспечивает эффективный способ переноса выполнения в разные части кода на основе значения (также называемого регистром) выражения. Язык Go поддерживает два типа операторов переключения:


  1. Выражение Выключатель
  2. Тип Переключатель

Выражение Выключатель

Выражение switch аналогично выражению switch в C, C ++, языке Java . Он обеспечивает простой способ отправки выполнения в разные части кода в зависимости от значения выражения.

Синтаксис:

switch optstatement; optexpression{
case expression1: Statement..
case expression2: Statement..
...
default: Statement..
}

Важные моменты:

  • И optstatement, и optexpression в переключателе выражений являются необязательными операторами.
  • Если присутствуют как optstatement, так и optexpression , то между ними требуется точка с запятой (;).
  • Если переключатель не содержит какого-либо выражения, то компилятор предполагает, что выражение истинно.
  • Необязательный оператор, т. Е. Optstatement, содержит простые операторы, такие как объявления переменных, операторы приращения или присваивания, вызовы функций и т. Д.
  • Если переменная присутствует в необязательном операторе, то область действия переменной ограничена этим оператором switch.
  • В операторе switch оператор case и default не содержит оператора break. Но вам разрешено использовать операторы break и fallthrough, если ваша программа требуется.
  • Оператор по умолчанию является необязательным в операторе switch.
  • Если регистр может содержать несколько значений, и эти значения разделяются запятой (,).
  • Если регистр не содержит никакого выражения, то компилятор предполагает, что выражение истинно.

Пример 1:


// Перейти к программе, чтобы проиллюстрировать

// концепция переключателя Expression

// заявление

package main

  

import "fmt"

  

func main() {

      

    // Переключаем оператор с обоими

    // необязательный оператор, т. е. day: = 4

    // и выражение, т.е. день

    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")

       case 6:

       fmt.Println("Saturday")

       case 7:

       fmt.Println("Sunday")

       default: 

       fmt.Println("Invalid")

   }

     

}

Выход:

Thursday

Пример 2:


// Перейти к программе, чтобы проиллюстрировать

// концепция переключателя Expression

// заявление

package main

  

import "fmt"

  

func main() {

    var value int = 2

      

    // Переключаем оператор без

    // необязательный оператор и

    // выражение

   switch {

       case value == 1:

       fmt.Println("Hello")

       case value == 2:

       fmt.Println("Bonjour")

       case value == 3:

       fmt.Println("Namstay")

       default: 

       fmt.Println("Invalid")

   }

  

}

Выход:

Bonjour

Пример 3:


// Перейти к программе, чтобы проиллюстрировать

// концепция переключателя Expression

// заявление

package main

  

import "fmt"

  

func main() {

    var value string = "five"

      

    // Переключение оператора без оператора по умолчанию

    // Несколько значений в регистре

   switch value {

       case "one":

       fmt.Println("C#")

       case "two", "three":

       fmt.Println("Go")

       case "four", "five", "six":

       fmt.Println("Java")

   }  

}

Выход:

Java

Тип Переключатель

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

Синтаксис:

switch optstatement; typeswitchexpression{
case typelist 1: Statement..
case typelist 2: Statement..
...
default: Statement..
}

Важные моменты:

  • Необязательный оператор, т. Е. Optstatement, аналогичен выражению switch.
  • Если регистр может содержать несколько значений, и эти значения разделяются запятой (,).
  • В операторе switch типа оператор case и default не содержит оператора break. Но вам разрешено использовать операторы break и fallthrough, если ваша программа требуется.
  • Оператор по умолчанию является необязательным в операторе переключения типов.
  • Выражение типов является выражением, результатом которого является тип.
  • Если выражение назначено в typeswitchexpression с использованием оператора: =, тогда тип этой переменной зависит от типа, присутствующего в предложении case. Если предложение case содержит два или более типов, то тип переменной — это тип, в котором она создается в typeswitchexpression .

Пример:


// Перейти к программе, чтобы проиллюстрировать

// концепция переключателя типа

// заявление

package main

  

import "fmt"

  

func main() {

    var value interface{}

    switch q:= value.(type) {

       case bool:

       fmt.Println("value is of boolean type")

       case float64:

       fmt.Println("value is of float64 type")

       case int:

       fmt.Println("value is of int type")

       default:

       fmt.Printf("value is of type: %T", q)

         

   }

}

Выход:

value is of type: <nil>


Report Page