可以使用 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循环后的代码
}
Go 循环控制:定时结束和条件结束

原文地址: https://www.cveoy.top/t/topic/lrWZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录