前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用continue label简化逻辑

利用continue label简化逻辑

作者头像
数据小冰
发布2024-07-04 16:00:20
140
发布2024-07-04 16:00:20
举报
文章被收录于专栏:数据小冰数据小冰
前言

在Go语言中,continue语句可以标签一起使用,continue label在处理复杂的嵌套循环时非常有用,可以让代码变得更简洁。

示例

下面的代码来自Continue statements with Labels in Go

在list.Items中查找与目标 reserved.Items 匹配的item,如果找到了,直接break并继续外层循环,如果没有找到做些处理。可以看到,代码中引入一个bool类型变量found,用于表示是否找到。在内层的循环中如果有匹配的item,设置found为true,在外层的循环中根据found是否为true做不同的处理。

代码语言:javascript
复制
for _, item := range list.Items {
 found := false

 for _, reserved := range reserved.Items {
  if reserved.ID == item.ID {
   found = true
   break
  }
  ... do some other work ...
 }

 if found {
  continue
 }

 ... do some other work ...
}
使用continue label

使用continue label,不再用标记位found做很多判断处理,直接continue OUTER简单明了,如果有匹配的item,直接执行外层剩余的循环。

代码语言:javascript
复制
OUTER:
for _, item := range list.Items {
 for _, reserved := range reserved.Items {
  if reserved.ID == item.ID {
   continue OUTER
  }
  ... do some other work ...
 }
 ... do some other work ...
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据小冰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 示例
  • 使用continue label
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档