Go 循环控制:定时结束和条件结束
可以使用 select 语句结合 time 包中的定时器来实现定时结束循环,或者使用通道来传递信号,根据条件结束循环。
以下是使用定时器结束循环的示例代码:
import (
"time"
)
func main() {
done := make(chan bool)
go func() {
for {
// 循环执行的代码
select {
case <-done:
// 收到信号,结束循环
return
case <-time.After(time.Second):
// 每秒执行一次
}
}
}()
// 5秒后发送信号,结束循环
time.AfterFunc(5*time.Second, func() {
done <- true
})
// 执行for循环后的代码
}
以下是使用通道结束循环的示例代码:
func main() {
done := make(chan bool)
go func() {
for {
// 循环执行的代码
select {
case <-done:
// 收到信号,结束循环
return
default:
// 没有收到信号,继续执行
}
}
}()
// 根据条件发送信号,结束循环
if someCondition {
done <- true
}
// 执行for循环后的代码
}
原文地址: https://www.cveoy.top/t/topic/lrWZ 著作权归作者所有。请勿转载和采集!