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
相关推荐
AI科技星11 分钟前
光速螺旋量子几何统一场论——基于 v ≡ c 公理的四大基本力全维度求导证明与精准数值验证
c语言·开发语言·人工智能·算法·机器学习·平面
天天学IT16 分钟前
第三章 Qt 编译及安装
开发语言·qt·qt教程·qt6教程
xyq202417 分钟前
Window Memcached 安装指南
开发语言
小村儿19 分钟前
一起吃透 Claude Code,告别 AI 编程迷茫
前端·后端·ai编程
牛十二19 分钟前
openclaw安装mcporter搜索小红书
开发语言·javascript·ecmascript
老刘说AI20 分钟前
WorkFlow Agent案例:auto_document_agent(文件自动处理)
开发语言·数据库·人工智能·python·神经网络·自然语言处理
程序员大飞哥24 分钟前
云控SLA的数学:250ms端到端延迟预算怎么分配给传输层
后端
时寒的笔记32 分钟前
js逆向05_ob混淆花指令,平坦流,某麦网(突破ob混淆寻找拦截器)
开发语言·前端·javascript
咸鱼2.036 分钟前
【java入门到放弃】杂记
java·开发语言
舒一笑1 小时前
客户现场没有外网,Docker 服务怎么部署?
运维·后端·自动化运维