登录
首页 >  Golang >  Go问答

无法理解Go语言中这段代码的用途,请帮忙解释

来源:stackoverflow

时间:2024-03-02 17:36:26 303浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《无法理解Go语言中这段代码的用途,请帮忙解释》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我是golang菜鸟,但我想更改一个每分钟每秒将数据写入数据库的源代码。我很难找到 tick 在代码中的作用。 config.samplerate 为整数 = 1,这意味着每分钟 = 每 60 秒

这个记号的含义及其结尾部分:<-tick,与计数器 i 结合?

i := 0

tick := time.Tick(time.Duration(1000/config.Samplerate) * time.Millisecond)

for {
    // Restart the accumulator loop every 60 seconds.
    if i > (60*config.Samplerate - 1) {
        i = 0
        //some code here
    }

    //some code there

    }
    <-tick
    i++

解决方案


tick 是 Go 中的通道。如果您查看 docstick 应在每个时间间隔向通道发送一次内容,该时间间隔由代码中的 time.Duration(1000/config.Samplerate) * time.Millisecond 指定。 <-tick 只是等待该时间间隔过去。

i 会记录过去了多少秒,因此每次滴答时,您都会为 i 加一。 if 语句检查一分钟过去的时间。

因此,if 语句内的代码每 60 秒触发一次,而 if 块下方的代码每秒触发一次。

本篇关于《无法理解Go语言中这段代码的用途,请帮忙解释》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

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