Latest web development tutorials

Go Sprache switch-Anweisung

Go Sprache bedingten Anweisungen Go Sprache bedingten Anweisungen

switch-Anweisung wird verschiedene Aktionen auf der Basis verschiedener Bedingungen ausführen verwendet, jeder Fall ist einzigartig Zweig, von oben und unten einzeln bis Spiel getestet. .

Switch-Anweisung führt den Prozess von oben nach unten, bis eine Übereinstimmung gefunden wird, letztere muss nicht zuzüglich Pause passen

Grammatik

Syntax Go Programmiersprache switch-Anweisung lautet wie folgt:

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

Var1 Variable kann von jeder Art sein, und val1 und val2 kann jeder Wert von der gleichen Art sein. Typ ist nicht auf eine konstante oder eine ganze Zahl beschränkt, sondern es müssen vom gleichen Typ sein, oder das Endergebnis ist die gleiche Art von Ausdruck.

Sie können gleichzeitig mehrere potenziell förderfähigen Wert zu testen, teilen Sie sie mit einem Komma, zum Beispiel: Fall val1, val2, val3.

Flussdiagramm:

Beispiele

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 );      
}

Der obige Code wird als Ergebnis der Ausführung:

优秀!
你的等级是 A

Typ Switch

switch-Anweisung kann auch für Typ-Schaltvariable verwendet werden tatsächlich gespeichert, den Typ einer variablen Schnittstelle zu bestimmen.

Typ Switch Syntax lautet wie folgt:

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

Beispiele

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("未知型")     
   }   
}

Der obige Code wird als Ergebnis der Ausführung:

x 的类型 :<nil>

Go Sprache bedingten Anweisungen Go Sprache bedingten Anweisungen