Republié de : goto in golang
Scénario 1 : Sauter de plusieurs boucles
package main
import "fmt"
func main() {
for x := 0; x < 10; x++ {
for y := 0; y < 10; y++ {
if y == 2 {
// 跳转到标签
goto breakHere
}
}
}
// 手动返回, 避免执行进入标签
return
// 标签
breakHere:
fmt.Println("done")
}
Scénario 2 : Aller à la fin du programme, effectuer une gestion unifiée des erreurs et éviter que les blocs de code de gestion des erreurs ne soient copiés plusieurs fois
err := firstCheckError()
if err != nil {
goto onExit
}
err = secondCheckError()
if err != nil {
goto onExit
}
fmt.Println("done")
return
onExit:
fmt.Println(err)
exitProcess()
Republié de : goto in golang