当前位置: 首页 > news >正文

Go语言 标签Label

 Go语言 label标签和枚举介绍及使用示例

目录

标签label

标签和goto

continue

break

枚举

代码示例

说明

总结


标签label

标签和goto

设置标签,并在标签中判断符合条件后,跳到指定标签位置。

示例如下:

package mainimport "fmt"func main() {LABEL1:for i := 0; i < 5; i++ {for j := 0; j < 5; j++ {if j == 3 {goto LABEL1}fmt.Println("i:", i, ",j:", j)}}fmt.Println("end------")
}

下次进入循环时,i不会保存之前的状态,重新从0开始计算,重新来过,无限循环。

continue

会跳到指定的位置,但是会记录之前的状态,i变成1。

示例如下:

func main() {
LABEL1:for i := 0; i < 5; i++ {for j := 0; j < 5; j++ {if j == 3 {continue LABEL1}fmt.Println("i:", i, ",j:", j)}}fmt.Println("end------")
}

运行结果:

i: 0 ,j: 0
i: 0 ,j: 1
i: 0 ,j: 2
i: 1 ,j: 0
i: 1 ,j: 1
i: 1 ,j: 2
i: 2 ,j: 0
i: 2 ,j: 1
i: 2 ,j: 2
i: 3 ,j: 0
i: 3 ,j: 1
i: 3 ,j: 2
i: 4 ,j: 0
i: 4 ,j: 1
i: 4 ,j: 2
end------

break

直接跳出指定位置的循环。

示例如下:

func main() {LABEL1:for i := 0; i < 5; i++ {for j := 0; j < 5; j++ {if j == 3 {break LABEL1}fmt.Println("i:", i, ",j:", j)}}fmt.Println("end------")
}

运行结果:

i: 0 ,j: 0
i: 0 ,j: 1
i: 0 ,j: 2
end------

枚举

在go语言中没有枚举类型,但是我们可以使用const + iota(常量累加器)来进行模拟。

代码示例

示例如下:

package mainimport "fmt"func main() {// 定义变量//var number int//var name string//var flag bool// 可以使用变量组来统一定义变量/*var (number int,name string,flag bool)*/// 模拟一个一周的枚举const(MONDAY = iota  //0TUESDAY        //1WEDNESDAY      //2THURSDAY       //3FRIDAY        //4SATURDAY       //5SUNDAY         //6M, N = iota, iota // const属于预编译期赋值,所以不需要:=进行自动推导)fmt.Println(MONDAY)fmt.Println(TUESDAY)fmt.Println(WEDNESDAY)fmt.Println(THURSDAY)fmt.Println(FRIDAY)fmt.Println(SATURDAY)fmt.Println(SUNDAY)fmt.Println(M, N)
}

 

说明

1.iota是常量组计数器

2.iota从0开始,每换行递增1

3.常量组有个特点如果不赋值,默认与上一行表达式相同

4.如果同一行出现两个iota,那么两个iota的值是相同的

5.每个常量组的iota是独立的,如果遇到const iota会重新清零

总结

Go语言 label标签和枚举介绍及使用示例

http://www.lryc.cn/news/419566.html

相关文章:

  • 自反射 RAG 管道:如何实现?
  • 怎么将jar注册为windows系统服务详细操作
  • 数据结构.
  • thinkphp5之sql注入漏洞-builder处漏洞
  • 30集 如何编写ESP32程序接入AIGC实现更多有趣的功能-《MCU嵌入式AI开发笔记》
  • 【JUC】Java对象内存布局和对象头
  • 简单介绍一下css中transform的内容
  • C 循环
  • 什么是设计模式?一文理解,通俗易懂!
  • doxygen制作接口文档
  • PDF怎么在线转Word?介绍四种转换方案
  • 大数据应用型产品设计方法及行业案例介绍(可编辑110页PPT)
  • 【Python零基础学习】Python环境安装和IDE选择
  • 【langchain学习】使用LangChain创建具有上下文感知的问答系统
  • 原神4.8版本升级计划数据表
  • 海南云亿商务咨询有限公司放大电商品牌影响力
  • 用exceljs和file-saver插件实现纯前端表格导出Excel(支持样式配置,多级表头)
  • TIA博途_下载时提示密码错误,但是之前并没有设置过密码的解决办法
  • 使用消息队列、rocketMq实现通信
  • 通过LLM大模型将「白雪公主的故事」转为图数据存储
  • MyBatisPlus 第一天
  • 线程与多线程(二)
  • 算法板子:欧拉函数——求一个数的欧拉函数、线性时间内求1~n所有数的欧拉函数
  • 2024牛客暑期多校训练营8
  • git的一些操作指令
  • 【IT行业研究报告】Internet Technology
  • GLM大模型的机器翻译能力测试
  • 【硬件产品经理】汽车A样设计
  • Ubuntu22.04系统中安装机器人操作系统ROS
  • LeetCode54题:螺旋矩阵(原创)