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
相关推荐
ghie90904 分钟前
基于MATLAB的多旋翼无人机多机编队仿真实现
开发语言·matlab·无人机
BlockChain8889 分钟前
Spring框架终极入门指南(12000字深度解析)
java·后端·python·spring
少控科技16 分钟前
QT新手日记026
开发语言·qt
就是有点傻17 分钟前
C#中如何和西门子通信
开发语言·c#
液态不合群21 分钟前
如何提升 C# 应用中的性能
开发语言·算法·c#
布局呆星23 分钟前
面向对象中的封装-继承-多态
开发语言·python
柏林以东_23 分钟前
异常的分类与用法
java·开发语言
专注API从业者28 分钟前
淘宝商品 API 接口架构解析:从请求到详情数据返回的完整链路
java·大数据·开发语言·数据库·架构
学嵌入式的小杨同学29 分钟前
【嵌入式 C 语言实战】栈、队列、二叉树核心解析:存储原理 + 应用场景 + 实现思路
linux·c语言·网络·数据结构·数据库·后端·spring
木千37 分钟前
Qt全屏显示,在顶部工具栏的最右边显示关闭按钮
开发语言·qt