Testovací podmínky s výrazy if/else
Tento příkaz představuje nejzásadnější tok řízení v libovolném programovacím if/else
jazyce. Příkazy v go if/else
jsou jednoduché. Než se ale začnete cítit pohodlně psát programy Go, musíte pochopit několik rozdílů.
Pojďme se podívat na syntaxi Jazyka Go pro if
příkazy.
Syntaxe příkazů if
Na rozdíl od jiných programovacích jazyků v Go nepotřebujete závorky v podmínkách. Klauzule else
je nepovinná. Ale složené závorky jsou stále povinné. Go navíc nenabízí podporu pro ternární if
příkazy ke snížení počtu řádků, takže musíte napsat úplné if
příkazy pokaždé.
Tady je základní příklad if
příkazu:
package main
import "fmt"
func main() {
x := 27
if x%2 == 0 {
fmt.Println(x, "is even")
}
}
Pokud syntaxe Jazyka Go obsahuje v podmínkách závorky, v editoru Visual Studio Code se při uložení programu automaticky odeberou závorky.
Složené příkazy if
Go podporuje složené if
příkazy. Příkazy můžete vnořit pomocí else if
příkazu. Tady je příklad:
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")
}
}
V tomto kódu si všimněte, že num
proměnná ukládá hodnotu vrácenou givemeanumber()
funkcí a proměnná je k dispozici ve všech if
větvích. Pokud se ale pokusíte vytisknout hodnotu num
proměnné mimo if
blok, zobrazí se chyba:
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)
}
Když program spustíte, výstup chyby vypadá takto:
# command-line-arguments
./main.go:17:14: undefined: num
Deklarace proměnných v if
blocích v go je idiomaticka. Je to způsob, jak efektivně programovat pomocí konvence, která je společná v Go.