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
相关推荐
这里有鱼汤几秒前
熟练掌握MACD这8种形态,让你少走三年弯路(附Python量化代码)| 建议收藏
后端·python
import_random几秒前
[机器学习]GBDT(介绍2)
后端
魔镜魔镜_谁是世界上最漂亮的小仙女6 分钟前
java-集合
java·后端·程序员
404.Not Found8 分钟前
Day46 Python打卡训练营
开发语言·python
love530love10 分钟前
【PyCharm必会基础】正确移除解释器及虚拟环境(以 Poetry 为例 )
开发语言·ide·windows·笔记·python·pycharm
凌辰揽月12 分钟前
Web后端基础(基础知识)
java·开发语言·前端·数据库·学习·算法
前端世界13 分钟前
ASP.NET ListBox控件多选实战:3步打造高效兴趣收集系统
后端·asp.net
海奥华216 分钟前
go中的接口返回设计思想
开发语言·后端·golang
lifallen18 分钟前
深入浅出 Arrays.sort(DualPivotQuicksort):如何结合快排、归并、堆排序和插入排序
java·开发语言·数据结构·算法·排序算法
运维开发王义杰18 分钟前
Python: 告别 ModuleNotFoundError, 解决 pipx 环境下 sshuttle 缺少 pydivert 依赖的终极指南
开发语言·python