Heim >Backend-Entwicklung >Golang >Interessanter Kontrollfluss im Kreis

Interessanter Kontrollfluss im Kreis

PHPz
PHPzOriginal
2024-08-29 06:32:021192Durchsuche

Interesting Control Flow in the circle

in Go (Golang) wird der Kontrollfluss mithilfe mehrerer grundlegender Konstrukte verwaltet, darunter Bedingungen (if, else), Schleifen (for) und switch-Anweisungen. Hier ist eine Übersicht darüber, wie diese Konstrukte in Go funktionieren:

  1. Bedingungen: if, else, else if In Go werden if-Anweisungen verwendet, um Code basierend auf einer Bedingung auszuführen. Im Gegensatz zu einigen anderen Sprachen erfordert Go keine Klammern um die Bedingung. Allerdings sind die geschweiften Klammern {} obligatorisch.

Grundsatzaussage

package main

import "fmt"

func main() {
    age := 20

    if age >= 18 {
        fmt.Println("You are an adult.")
    }
}

Beispiel für eine „if-else-Anweisung“
`Paket main

importiere „fmt“

func main() {
Alter:= 16

if age >= 18 {
    fmt.Println("You are an adult.")
} else {
    fmt.Println("You are not an adult.")
}

}
`
'if-else if-else'-Anweisung:

package main

import "fmt"

func main() {
    age := 20

    if age >= 21 {
        fmt.Println("You can drink alcohol.")
    } else if age >= 18 {
        fmt.Println("You are an adult, but cannot drink alcohol.")
    } else {
        fmt.Println("You are not an adult.")
    }
}

2.Schleifen: für
Go verwendet die „for“-Schleife für alle Schleifenanforderungen; es gibt kein „while“ oder eine Schleife
Grundlegende „for“-Schleife:

package main

import "fmt"

func main() {
    for i := 0; i < 5; i++ {
        fmt.Println(i)
    }
}

'for' als 'while'-Schleife:

package main

import "fmt"

func main() {
    i := 0
    for i < 5 {
        fmt.Println(i)
        i++
    }
}

Endlosschleife:

package main

func main() {
    for {
        // This loop will run forever
    }
}

'for'-Schleife mit 'range':
Dies wird oft verwendet, um über Slices, Arrays, Maps oder Strings zu iterieren.

package main

import "fmt"

func main() {
    numbers := []int{1, 2, 3, 4, 5}

    for index, value := range numbers {
        fmt.Println("Index:", index, "Value:", value)
    }
}

  1. Switch-Anweisung Go Die „Switch“-Anweisung in Go wird verwendet, um einen von vielen Codeblöcken auszuwählen, die ausgeführt werden sollen. Go „switch“ ist leistungsfähiger als in einigen anderen Sprachen und kann mit jeder Art von Wert verwendet werden, nicht nur mit ganzen Zahlen.

Grundlegender „Schalter“

package main

import "fmt"

func main() {
    day := "Monday"

    switch day {
    case "Monday":
        fmt.Println("Start of the work week.")
    case "Friday":
        fmt.Println("End of the work week.")
    default:
        fmt.Println("Midweek.")
    }
}

Wechseln Sie mit mehreren Ausdrücken in einem Fall:

package main

import "fmt"

func main() {
    day := "Saturday"

    switch day {
    case "Saturday", "Sunday":
        fmt.Println("Weekend!")
    default:
        fmt.Println("Weekday.")
    }
}

Ein Schalter ohne Ausdruck verhält sich wie eine Kette von if-else-Anweisungen.

package main

import "fmt"

func main() {
    age := 18

    switch {
    case age < 18:
        fmt.Println("Underage")
    case age >= 18 && age < 21:
        fmt.Println("Young adult")
    default:
        fmt.Println("Adult")
    }
}
  1. Aufschieben, in Panik geraten und sich erholen
package main

import "fmt"

func main() {
    defer fmt.Println("This is deferred and will run at the end.")
    fmt.Println("This will run first.")
}

Panik und Genesung

package main

import "fmt"

func main() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Recovered from panic:", r)
        }
    }()

    fmt.Println("About to panic!")
    panic("Something went wrong.")
}

Das obige ist der detaillierte Inhalt vonInteressanter Kontrollfluss im Kreis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn