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
相关推荐
云上小朱11 分钟前
在k8s部署alist 3.62.0
后端
麻瓜老宋14 分钟前
AI开发C语言应用按步走,表达式计算器calc的第四步,交互式 REPL 模式
c语言·开发语言·atomcode
花开彼岸天~18 分钟前
鸿蒙原生开发手记:徒步迹 - 轨迹回放动画实现
后端
猫猫不是喵喵.24 分钟前
双亲委派机制与类加载过程
java·开发语言
进击的前栈36 分钟前
鸿蒙原生开发手记:徒步迹 - 文件读写与缓存管理
后端
布朗克16838 分钟前
Go入门到精通-22-同步原语
开发语言·后端·golang·同步原语
云上小朱38 分钟前
在docker环境部署Alist3.62.0
后端
wei_shuo39 分钟前
KES 事务管理与MVCC深度解析:隔离级别、快照机制与并发控制
后端
程序员清风43 分钟前
公司要裁员之前,都会有哪些信号?
java·后端·面试
帅次1 小时前
Kotlin Flow 与 StateFlow:UI 单向数据流基础
开发语言·ui·kotlin·stateflow·onlifecycle