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
相关推荐
维吉斯蔡13 小时前
【VS Code / Cursor】文件夹右键快捷打开与文件类型自动关联
开发语言·程序人生·学习方法
前端工作日常13 小时前
我学习到的Java 的 Service 分层:itf 和 impl 到底是什么?
java·后端
前端工作日常14 小时前
我学习到的JIT即时编译与机器码缓存失效
java·后端
犀利豆15 小时前
Claude Code Tools 研究系列(三)ExitPlanMode
人工智能·后端
luj_176815 小时前
星火科技助力边远地区防病攻坚
c语言·开发语言·c++·经验分享·算法
always_TT15 小时前
【Python 日志记录:logging 模块入门】
开发语言·python·php
星栈15 小时前
oh-my-pi工程级AI编码工使用体验
人工智能·后端·agent
xcLeigh15 小时前
Go入门:变量声明的五种方式详解
java·开发语言·golang
zmzb010316 小时前
C++课后习题训练记录Day175
开发语言·c++
脱胎换骨-军哥16 小时前
C++ 代码规范与格式化指南
开发语言·c++·代码规范