Go Sprache switch-Anweisung
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>