使用方法
-
Label 和goto是必须的
-
Label可以声明再函数体的任何地方
-
Label
的作用范围是在函数体中 -
Label
在嵌套函数(闭包)是不可用的. 不管是在闭包里
调用闭包外
的Label, 还是在闭包外
调用闭包里
的Label -
变量的声明必须在goto之前
示例
Go
package main
import "fmt"
func main() {
fmt.Println("1")
goto End
fmt.Println("2")
End:
fmt.Println(3)
}
输出:
bash
1
3
Label
在嵌套函数(闭包)是不可用的
bash
package main
import (
"fmt"
)
func main() {
fmt.Println(1)
func() {
fmt.Println("Nested function")
goto End
}()
End:
fmt.Println(2)
}
输出:
bash
# devops/test
.\study.go:11:8: label End not defined
.\study.go:13:1: label End defined and not used
参考文档
bash
https://www.cnblogs.com/zhangyafei/p/13938116.html