Latest web development tutorials

Перейти заявление переключения языка

Go язык условных операторов Go язык условных операторов

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

Переключение выполняется оператор процесс от начала до конца, пока не будет найдено совпадение, последний не должен совпадать плюс перерыв

грамматика

Синтаксис Go заявление переключатель языка программирования выглядит следующим образом:

switch var1 {
    case val1:
        ...
    case val2:
        ...
    default:
        ...
}

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

Вы можете одновременно протестировать несколько потенциально имеющих право стоимость, разделить их запятой, например: случай val1, val2, val3.

Блок-схема:

примеров

package main

import "fmt"

func main() {
   /* 定义局部变量 */
   var grade string = "B"
   var marks int = 90

   switch marks {
      case 90: grade = "A"
      case 80: grade = "B"
      case 50,60,70 : grade = "C"
      default: grade = "D"  
   }

   switch {
      case grade == "A" :
         fmt.Printf("优秀!\n" )     
      case grade == "B", grade == "C" :
         fmt.Printf("良好\n" )      
      case grade == "D" :
         fmt.Printf("及格\n" )      
      case grade == "F":
         fmt.Printf("不及格\n" )
      default:
         fmt.Printf("差\n" );
   }
   fmt.Printf("你的等级是 %s\n", grade );      
}

Приведенный выше код выполняется в результате:

优秀!
你的等级是 A

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

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

Синтаксис Тип переключателя выглядит следующим образом:

switch x.(type){
    case type:
       statement(s);      
    case type:
       statement(s); 
    /* 你可以定义任意个数的case */
    default: /* 可选 */
       statement(s);
}

примеров

package main

import "fmt"

func main() {
   var x interface{}
     
   switch i := x.(type) {
      case nil:	  
         fmt.Printf(" x 的类型 :%T",i)                
      case int:	  
         fmt.Printf("x 是 int 型")                       
      case float64:
         fmt.Printf("x 是 float64 型")           
      case func(int) float64:
         fmt.Printf("x 是 func(int) 型")                      
      case bool, string:
         fmt.Printf("x 是 bool 或 string 型" )       
      default:
         fmt.Printf("未知型")     
   }   
}

Приведенный выше код выполняется в результате:

x 的类型 :<nil>

Go язык условных операторов Go язык условных операторов