登录
首页 >  Golang >  Go问答

跳出选择循环?

来源:Golang技术栈

时间:2023-04-05 07:58:50 454浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《跳出选择循环?》,本文主要会讲到golang等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

我正在尝试select在循环中使用 a 来接收消息或超时信号。如果收到超时信号,循环应该中止:

package main
import ("fmt"; "time")
func main() {
    done := time.After(1*time.Millisecond)
    numbers := make(chan int)
    go func() {for n:=0;; {numbers 

但是,它似乎并没有停止:

$ go run a.go
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[...]
3824
3825
[...]

为什么?我用time.After错了吗?

正确答案

Go规范说

“break”语句会终止同一个函数中最里面的“for”、“switch”或“select”语句的执行。

在您的示例中,您只是打破了 select 语句。如果你break用一个return语句替换,你会看到它正在工作。

好了,本文到此结束,带大家了解了《跳出选择循环?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>