Testowanie warunków za pomocą wyrażeń if/else

Ukończone

Najbardziej podstawowym przepływem sterowania w dowolnym języku programowania jest if/else instrukcja . W języku if/else Go instrukcje są proste. Ale musisz zrozumieć kilka różnic przed rozpoczęciem odczuwania wygodnego pisania programów Go.

Przyjrzyjmy się składni języka Go dla if instrukcji.

Składnia instrukcji if

W przeciwieństwie do innych języków programowania, w języku Go nie potrzebujesz nawiasów w warunkach. Klauzula else jest opcjonalna. Ale nawiasy klamrowe są nadal wymagane. Ponadto język Go nie oferuje obsługiternarnych if instrukcji w celu zmniejszenia liczby wierszy, dlatego należy za każdym razem napisać pełną if instrukcję.

Oto podstawowy przykład instrukcji if :

package main

import "fmt"

func main() {
    x := 27
    if x%2 == 0 {
        fmt.Println(x, "is even")
    }
}

W programie Visual Studio Code, jeśli składnia języka Go zawiera nawiasy w warunkach, nawiasy zostaną automatycznie usunięte podczas zapisywania programu.

Złożone instrukcje if

Język Go obsługuje instrukcje złożone if . Instrukcje można zagnieżdżać przy użyciu instrukcji else if . Oto przykład:

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

W tym kodzie zwróć uwagę, że num zmienna przechowuje wartość zwracaną z givemeanumber() funkcji, a zmienna jest dostępna we wszystkich if gałęziach. Jeśli jednak spróbujesz wydrukować wartość num zmiennej poza blokiem if , zostanie wyświetlony błąd:

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

Po uruchomieniu programu dane wyjściowe błędu wyglądają następująco:

# command-line-arguments
./main.go:17:14: undefined: num

W języku Go deklarowanie zmiennych w if blokach jest idiomatyczne. Jest to sposób efektywnego programowania przy użyciu konwencji, która jest powszechna w języku Go.