Golang基础 Label标签与goto跳转

使用方法

  • 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
相关推荐
Nturmoils2 分钟前
JOIN 不是拼上就完事,多表查询这几个坑先跑一遍
数据库·后端
AI行业学习8 分钟前
2026 版 Notepad++ 完整图文安装指南|官方渠道无捆绑,一键切换中文界面
开发语言·人工智能·python·html·notepad++
ttwuai11 分钟前
GoFrame + Vue3 后台管理系统实战:CRUD、权限和菜单如何少写重复代码
golang
IT_陈寒20 分钟前
Vue的v-if和v-show,我竟然用错了这么久
前端·人工智能·后端
鹏易灵20 分钟前
C++——7.类与对象,掌握封装、继承、多态.详解
开发语言·c++·算法
一路向北North22 分钟前
Spring Security OAuth2.0(16):密码模式
java·后端·spring
水无痕simon22 分钟前
5 多表操作
java·开发语言·数据库
初阳78523 分钟前
【Qt】系统相关(2)——文件
开发语言·qt
大P哥阿豪25 分钟前
Go panic & recover:深入Go语言的异常拯救之道
开发语言·后端·golang·go
IT_陈寒34 分钟前
React状态更新延迟搞晕我,原来是闭包在捣鬼
前端·人工智能·后端