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
相关推荐
西红柿维生素7 分钟前
23种设计模式-框架中的使用
java·开发语言·设计模式
LNN202210 分钟前
Qt creator +Valgrind检测内存泄漏(linux)
linux·开发语言·qt
KoProject12 分钟前
发布30款App之后,我总结了这套GLM-4.6全自动化开发流
前端·后端·github
每日一码AI掘金12 分钟前
【Spring AI 】Spring AI简介
后端
该用户已不存在29 分钟前
构建现代应用的9个Python GUI库
前端·后端·python
自珍JAVA36 分钟前
【Apollo】@ApolloConfigChangeListener(interestedKeys = "config.key")
后端
王道长AWS_服务器39 分钟前
AWS + Discuz!:社区站架构的现代化玩法
后端·程序员·aws
修炼前端秘籍的小帅43 分钟前
精读《JavaScript 高级程序设计 第4版》第6章 集合引用类型(三)Map、WeakMap、Set、WeakSet
开发语言·javascript·ecmascript
@LetsTGBot搜索引擎机器人1 小时前
打造属于你的 Telegram 中文版:汉化方案 + @letstgbot 搜索引擎整合教程
开发语言·python·搜索引擎·机器人·.net
数据知道1 小时前
Go语言设计模式:桥接模式详解
设计模式·golang·桥接模式