Testen von Bedingungen mit if/else-Ausdrücken
Der grundlegendste Ablaufsteuerung in jeder Programmiersprache ist die if/else
-Anweisung. In Go sind if/else
-Anweisungen ganz einfach. Aber Sie müssen ein paar Unterschiede verstehen, bevor Sie sich beim Schreiben von Go-Programmen wohlfühlen.
Werfen wir einen Blick auf die Go-Syntax für if
-Anweisungen.
Syntax für if-Anweisungen
Im Gegensatz zu anderen Programmiersprachen benötigen Sie in Go keine Klammern in Bedingungen. Die else
-Klausel ist optional. Geschweifte Klammern sind jedoch weiterhin erforderlich. Außerdem bietet Go keine Unterstützung für ternäre if
-Anweisungen, um Zeilen zu reduzieren, sodass Sie jedes Mal die vollständige if
-Anweisung schreiben müssen.
Nachfolgend sehen Sie ein einfaches Beispiel für eine if
-Anweisung:
package main
import "fmt"
func main() {
x := 27
if x%2 == 0 {
fmt.Println(x, "is even")
}
}
Wenn Ihre Go-Syntax in Visual Studio Code Klammern in Bedingungen enthält, werden die Klammern automatisch entfernt, wenn Sie Ihr Programm speichern.
Zusammengesetzte if-Anweisungen
Go unterstützt zusammengesetzte if
-Anweisungen. Sie können-Anweisungen mit der else if
-Anweisung schachteln. Hier sehen Sie ein Beispiel:
package main
import "fmt"
func givemeanumber() int {
return -1
}
func main() {
if num := givemeanumber(); num < 0 {
fmt.Println(num, "is negative")
} else if num < 10 {
fmt.Println(num, "has only one digit")
} else {
fmt.Println(num, "has multiple digits")
}
}
Beachten Sie in diesem Code, dass die Variable num
den von der Funktion givemeanumber()
zurückgegebenen Wert speichert und die Variable in allen if
-Branches verfügbar ist. Wenn Sie jedoch versuchen, den Wert der Variablen num
außerhalb des if
-Blocks auszugeben, erhalten Sie einen Fehler:
package main
import "fmt"
func somenumber() int {
return -7
}
func main() {
if num := somenumber(); num < 0 {
fmt.Println(num, "is negative")
} else if num < 10 {
fmt.Println(num, "has 1 digit")
} else {
fmt.Println(num, "has multiple digits")
}
fmt.Println(num)
}
Wenn Sie das Programm ausführen, sieht die Fehlerausgabe wie folgt aus:
# command-line-arguments
./main.go:17:14: undefined: num
In Go ist das Deklarieren von Variablen innerhalb von if
-Blöcken idiomatisch. Es ist eine Möglichkeit, mithilfe einer in Go üblichen Konvention effektiv zu programmieren.