golang 跳出for循环操作_golang_脚本之家


本站和网页 https://www.jb51.net/article/202163.htm 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。


golang 跳出for循环操作_Golang_脚本之家
脚本之家
服务器常用软件
手机版
关注微信
快捷导航
软件下载
android
MAC
驱动下载
字体下载
DLL
源码下载
PHP
ASP.NET
ASP
JSP
软件编程
C#
JAVA
C 语言
Delphi
Android
网络编程
JavaScript
在线工具
CSS格式化
JS格式化
Html转化为Js
数据库
MYSQL
MSSQL
oracle
DB2
MARIADB
CMS
PHPCMS
DEDECMS
帝国CMS
WordPress
常用工具
PHP开发工具
python
Photoshop
必备软件
网站首页
网页制作
脚本专栏
脚本下载
服务器
电子书籍
操作系统
网站运营
平面设计
其它
媒体动画
电脑基础
硬件教程
网络安全
vbs
DOS/BAT
hta
htc
perl
游戏相关
VBA
远程脚本
ColdFusion
ruby
autoit
seraphzone
PowerShell
linux shell
Lua
Golang
Erlang
您的位置:
首页
→ golang 跳出for循环
golang 跳出for循环操作
 更新时间:2020年12月15日 10:18:33   作者:陈永坤  
这篇文章主要介绍了golang 跳出for循环操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
执行以下代码,发现无法跳出for循环:
func SelectTest() {
i := 0
for {
select {
case <-time.After(time.Second * time.Duration(2)):
i++
if i == 5 {
fmt.Println("跳出for循环")
fmt.Println("for循环内 i=", i)
fmt.Println("for循环外")
解决办法有两个:
1.使用break:
Loop:
break Loop
2.使用goto:
goto Loop
分析:
使用break lable 和 goto lable 都能跳出for循环;不同之处在于:break标签只能用于for循环,且标签位于for循环前面,goto是指跳转到指定标签处
补充:golang跳出for select 循环
通常在for循环中,使用break可以跳出循环,但是注意在go语言中,for select配合时,break并不能跳出循环。
func testSelectFor(chExit chan bool){
case v, ok := <-chExit:
if !ok {
fmt.Println("close channel 1", v)
break
fmt.Println("ch1 val =", v)
fmt.Println("exit testSelectFor")
如下调用:
//尝试2 select for 跳出循环
c := make(chan bool)
go testSelectFor(c)
c <- true
c <- false
close(c)
time.Sleep(time.Duration(2) * time.Second)
运行结果如下,可以看到break无法跳出循环:
...
close channel 1 false
了解决这个问题,需要设置标签,break 标签或goto 便签即可跳出循环,如下两种方法均可。
func testSelectFor2(chExit chan bool){
EXIT:
fmt.Println("close channel 2", v)
break EXIT//goto EXIT2
fmt.Println("ch2 val =", v)
//EXIT2:
fmt.Println("exit testSelectFor2")
同样调用,输出结果如下:
ch2 val = true
ch2 val = false
close channel 2 false
exit testSelectFor2
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
您可能感兴趣的文章:
golang中for循环遍历channel时需要注意的问题详解
Golang常见错误之值拷贝和for循环中的单一变量详解
Golang实现for循环运行超时后自动退出的方法
golang语言中for循环语句用法实例
golang
for循环
相关文章
一文教你打造一个简易的Golang日志库
这篇文章主要为大家详细介绍了如何使用不超过130行的代码,通过一系列golang的特性,来打造一个简易的golang日志库,感兴趣的小伙伴可以了解一下
2023-06-06
使用Go语言实现微信公众平台
这篇文章主要介绍了使用Go语言实现微信公众平台,虽然不是全部代码,但是也是给我们提供了一个非常好的思路,需要的朋友可以参考下
2015-01-01
Go各时间字符串使用解析
这篇文章主要介绍了Go各时间字符串使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2021-04-04
一文理解Go 中的可寻址和不可寻址
如果字典的元素不存在,则返回零值,而零值是不可变对象,如果能寻址问题就大了。而如果字典的元素存在,考虑到 Go 中 map 实现中元素的地址是变化的,这意味着寻址的结果也是无意义的。下面我们就围绕这个话题写一篇文章吧,需要的朋友可以参考一下
2021-10-10
GO语言基本类型String和Slice,Map操作详解
这篇文章主要为大家介绍了GO语言基本类型String和Slice,Map操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-08-08
浅谈Go Channel 高级实践
这篇文章主要介绍了浅谈Go Channel 高级实践,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
2018-08-08
手把手教你如何在Goland中创建和运行项目
欢迎来到本指南!我们将手把手地教您在Goland中如何创建、配置并运行项目,通过简单的步骤,您将迅速上手这款强大的集成开发环境(IDE),轻松实现您的编程梦想,让我们一起开启这段精彩的旅程吧!
2024-02-02
Go标准库日志打印及同时输出到控制台与文件
Go语言内置的log包实现了简单的日志服务,下面这篇文章主要给大家介绍了关于Go标准库日志打印及同时输出到控制台与文件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-11-11
详解Go语言变量作用域
这篇文章主要介绍了Go 语言变量作用域的相关资料,帮助大家更好的理解和学习使用go语言,感兴趣的朋友可以了解下
2021-03-03
Go语言实现简单Web服务器的方法
这篇文章主要介绍了Go语言实现简单Web服务器的方法,实例分析了Web服务器的实现原理与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
2015-02-02
最新评论
大家感兴趣的内容
Goland激活码破解永久版及安装详细教程(亲测可以)
Go语言string,int,int64 ,float之间类
Go语言中的Array、Slice、Map和Set使用详解
Go语言的GOPATH与工作目录详解
Go语言转换所有字符串为大写或者小写的方法
Go语言interface详解
五步让你成为GO 语言高手
Go语言命令行操作命令详细介绍
Go语言编程中字符串切割方法小结
10
我放弃Python转Go语言的9大理由(附优秀书籍推荐)
最近更新的内容
go日志库logrus的安装及快速使用
golang 实现interface{}转其他类型操作
go-zero熔断机制组件Breaker接口定义使用解析
GoLang unsafe包详细讲解
Go语言使用字符串的几个技巧分享
golang中make和new的区别示例详解
go语言实现Elasticsearches批量修改查询及发送MQ操作示例
Go语言的type func()用法详解
Golang微服务框架Kratos实现Kafka消息队列的方法
Golang 实现简单随机负载均衡
常用在线小工具
关于我们
广告合作
联系我们
免责声明
网站地图
投诉建议
在线投稿
©CopyRight 2006-2024 JB51.Net Inc All Rights Reserved. 脚本之家 版权所有