Initialisierungsanweisung in der if-Anweisung
Bei unserem vorherigen Lernprozess hatte die if
-Anweisung nur einen Parameter, nämlich die Bedingung:
if condition {
code
}
Der vollständige Parameter umfasst auch eine Initialisierungsanweisung, die in Go ein optionaler Parameter ist. Sie wird typischerweise zur Deklaration und Initialisierung temporärer Variablen verwendet. Die Initialisierungsanweisung wird bei der Verwendung durch ein Semikolon getrennt. Die Syntax ist wie folgt:
if initialization statement; condition {
code
}
Wir haben das Programm aus dem Abschnitt "if else" umgeschrieben. Wir haben die Variablendeklaration als Initialisierungsanweisung in die if
-Anweisung verschoben, um den Code zu verkürzen:
package main
import (
"fmt"
"time"
)
func main() {
if t := time.Now(); t.Weekday() == time.Saturday || t.Weekday() == time.Sunday {
fmt.Println("Today is:", t.Weekday(), "weekend, studying and recharging")
} else {
fmt.Println("Today is:", t.Weekday(), "also studying hard")
}
}
Führen Sie das Programm aus:
go run if_else.go
Man kann sehen, dass es korrekt läuft:
Today is: Monday also studying hard
Hinweis: Der Gültigkeitsbereich der in der Initialisierungsanweisung deklarierten Variablen ist nur innerhalb des if
-Blocks.
Ich weiß nicht, ob ihr Go-Entwickler bei der Lernphase der if
-Anweisungen die Formatierungsanforderungen von Go bemerkt habt.
- In Go müssen die Schlüsselwörter
if
, else
und else if
in derselben Zeile wie die rechte geschweifte Klammer }
stehen.
- Die Schlüsselwörter
else if
und else
müssen ebenfalls in derselben Zeile wie die vorherige linke geschweifte Klammer stehen, andernfalls meldet der Compiler einen Syntaxfehler zur Kompilierzeit.
Wenn wir das Programm ausführen, nachdem wir die else
-Anweisung in die nächste Zeile verschoben haben, meldet der Compiler einen Syntaxfehler.